首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

新人,把多行表单作为数组UP进数据库的各种小疑问

2013-02-25 
新人求助,把多行表单作为数组UP进数据库的各种小疑问!因为网站的需求,需要做一个页面提交表单,需要涉及到

新人求助,把多行表单作为数组UP进数据库的各种小疑问!
因为网站的需求,需要做一个页面提交表单,需要涉及到多行表单 作为数组的形式提交到数据库!
度娘得到一个范例:

<tr> 
        <td>1</td> 
        <td><input type="text" name="name[]" value="许亮"></td> 
        <td><input type="text" name="age[]" value="25"></td> 
        <td><input type="text" name="position[]" value="SAP开发工程师"></td> 
    </tr> 
    <tr> 
        <td>2</td> 
        <td><input type="text" name="name[]" value="周未红"></td> 
        <td><input type="text" name="age[]" value="22"></td> 
        <td><input type="text" name="position[]" value="招聘主管"></td> 
    </tr> 
    <tr> 
        <td>3</td> 
        <td><input type="text" name="name[]" value="胡睿妮"></td> 
        <td><input type="text" name="age[]" value="24"></td> 
       <td><input type="text" name="position[]" value="银行职员"></td> 
    </tr> 
    <tr> 
        <td>4</td> 
        <td><input type="text" name="name[]" value="张凯"></td> 
        <td><input type="text" name="age[]" value="35"></td> 
        <td><input type="text" name="position[]" value="经理"></td> 
    </tr> 

就是把各个字段设置为 []行程数组上传,处理代码为:
<?php  
$db_name="test";  
$table_name="co_arr";  
$connection= @mysql_connect("localhost","root","smtroot") or die(mysql_error());  
$db= @mysql_select_db($db_name,$connection) or die (mysql_error());  
mysql_query("SET NAMES GBK");  
 
echo "<pre>";  
print_r($_POST["name"]);  
print_r($_POST["age"]);  
print_r($_POST["position"]);  
 
//计算传递过来的文本框的行数  
$arr_Length = count($_POST["name"]);  
 
$name_arr = $_POST["name"];  
$age_arr = $_POST["age"];  
$position_arr = $_POST["position"];  
 
/*循环插入语句*/ 
for($i=0;$i<$arr_Length;$i++){  
    $sql = "insert into co_arr(name,age,position)";  
    $sql .= "values('$name_arr[$i]','$age_arr[$i]','$position_arr[$i]')";  
    $query = @mysql_query($sql,$connection) or die(mysql_error());  
    //echo $_POST["name"][$i]."<br>";  
}  
?> 



因为个人需要,我的表单还需要插入 好几个隐藏的字段和一个订单号的字段和订单备注的字段,那在这种情况下,小人有几个疑问请给位大大解惑:
1. 普通的字段是数组形式,可以正常上传,那隐藏的字段和订单号这些不是数组的字段怎么办呢?插入语句应该怎么写,才能在数据表的每行里面都插入这些字段呢?

2.该范例为文本框的范例,那下拉框应该不会出现什么错误吧? 因为有个自动增加行的JS在里面,我害怕出错。

3.$arr_Length = count($_POST["name"]);    这个语句是什么意思呢? 请指点迷津!

先谢谢给位大大了! 数据库 mysql 数组
[解决办法]
1. 普通的字段是数组形式,可以正常上传,那隐藏的字段和订单号这些不是数组的字段怎么办呢?插入语句应该怎么写,才能在数据表的每行里面都插入这些字段呢?
  这要看你的隐藏的字段和订单号是不是对于每行都是一样的了

2.该范例为文本框的范例,那下拉框应该不会出现什么错误吧? 因为有个自动增加行的JS在里面,我害怕出错。
  只要每行对应上就不会有问题

3.$arr_Length = count($_POST["name"]);    这个语句是什么意思呢? 请指点迷津!
count() 函数计算数组的元素个数
[解决办法]
既然是一样的就不需要每行都插入了,写一次就行了。后台获取后统一处理就是了。
[解决办法]
<input type="hidden" name="orderid" value="111">

$orderid=$_POST["orderid"];  //以订单号为例,其他字段自己扩展

/*循环插入语句*/ 
for($i=0;$i<$arr_Length;$i++){  
    $sql = "insert into co_arr(orderid,name,age,position)";  
    $sql .= "values('$orderid','$name_arr[$i]','$age_arr[$i]','$position_arr[$i]')";  
    $query = @mysql_query($sql,$connection) or die(mysql_error());  
    //echo $_POST["name"][$i]."<br>";  
}
 

热点排行