读书人

新人把多行表单作为数组UP进数据库的

发布时间: 2013-02-25 10:23:36 作者: rapoo

新人求助,把多行表单作为数组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>";
}

读书人网 >PHP

热点推荐