我有一个文本框数组
<form method="POST">
<input type="text" name="partnumber[]" value="1234">
<input type="text" name="desc[]" value="used">
<input type="text" name="qty[]" value="24">
<input type="text" name="partnumber[]" value="2345">
<input type="text" name="desc[]" value="good">
<input type="text" name="qty[]" value="31">
<input type="text" name="partnumber[]" value="3456">
<input type="text" name="desc[]" value="brand new">
<input type="text" name="qty[]" value="22">
<input type="submit">
</form>
发布后,我想像这样插入我的数据库。使用相同的ref_id。
last_insert_id = 17;
id | ref_id | partnumber| description | quantity
1 | 17 | 1234 | used | 24
2 | 17 | 2345 | good | 31
3 | 17 | 3456 | brand new | 22
任何帮助都会得到满足。感谢..
$comma = "";
$values = "";
$last_id = 17;
foreach ($partnumber as $p) {
foreach ($desc as $d) {
foreach ($qty as $q) {
}
}
$values .= $comma."($id,$last_id,'$p','$d','$q')";
$comma = ",";
}
$sql = "INSERT INTO parts_replaced (id,last_id,partnumber,description,quantity) VALUES $values";
答案 0 :(得分:1)
你可以像这样得到这个表格..
<form method="POST">
<input type="text" name="partnumber[]" value="1234">
<input type="text" name="desc[]" value="used">
<input type="text" name="qty[]" value="24">
<input type="text" name="partnumber[]" value="2345">
<input type="text" name="desc[]" value="good">
<input type="text" name="qty[]" value="31">
<input type="text" name="partnumber[]" value="3456">
<input type="text" name="desc[]" value="brand new">
<input type="text" name="qty[]" value="22">
<input type="submit">
</form>
<?php
if(isset($_POST['partnumber']))
{
$parnumber=$_POST['partnumber'];
foreach ($parnumber as $key => $value) {
echo $value.'-'.$_POST['desc'][$key].'-'.$_POST['qty'][$key].'<br />';
//add your query here
}
}
?>
答案 1 :(得分:1)
请试试这个
extract($_POST);
$last_id = 17;
foreach($partnumber as $key => $p ){ // Can use any of the mandatory field here
$part_no = $p;
$description = $desc[$key];
$qty = $qty[$key];
$sql = "INSERT INTO parts_replaced (`ref_id`,`partnumber`,`description`,`qty`) VALUES ('".$last_id."', '".$part_no."','".$description."','".$qty ."') ";
mysql_query($sql); // If id is auto incremented no need to specify it in query
}
答案 2 :(得分:0)
INSERT INTO
中的字段数与值的数量不匹配:
$ sql =“INSERT INTO parts_replaced ( id,last_id,part_no,description,qty )VALUES $ values“;
$ values。= $逗号。“( $ id,'$ p','$ d','$ q')”;
答案 3 :(得分:0)
将您的HTML设为如下:
<?php $i=0;?>
<form method="POST">
<input type="text" name="partnumber[<?php echo $i;?>]" value="1234">
<input type="text" name="desc[<?php echo $i;?>]" value="used">
<input type="text" name="qty[<?php echo $i;?>]" value="24">
<input type="text" name="partnumber[<?php echo $i+1;?>]" value="2345">
<input type="text" name="desc[<?php echo $i+1;?>]" value="good">
<input type="text" name="qty[<?php echo $i+1;?>]" value="31">
<input type="text" name="partnumber[<?php echo $i+12;?>]" value="3456">
<input type="text" name="desc[<?php echo $i+2;?>]" value="brand new">
<input type="text" name="qty[<?php echo $i+2;?>]" value="22">
<input type="hidden" name="arr_length" value="<?php echo $i+2;?>">
<input type="submit">
</form>
在php中处理如下:
<?php
if(isset($_POST['arr_length']) && $_POST['arr_length'] > 0){
for($i=0;$i<=$_POST['arr_length'];$i++){
echo $_POST['partnumber'][$i].'---'.$_POST['desc'][$i].'---'.$_POST['qty'][$i].'<br>';
}
}
?>
答案 4 :(得分:0)
$values = "";
$last_id = 17;
$parnumber = $_POST['partnumber'];
for($i=0, $max = count($parnumber); $i < $max; $i++) {
$p = $_POST['parnumber'][$i];
$desc = $_POST['desc'][$i];
$qty = $_POST['qty'][$i];
$values .= "('$id','$last_id','$p','$desc','$qty'), ";
}
$str = trim($values);// trim the last white space
$str = rtrim($values, ',');//remove last comma
$sql = "INSERT INTO parts_replaced (id,last_id,part_no,description,qty) VALUES $str";