PHP多个文本框数组

时间:2015-09-09 05:40:35

标签: php mysql arrays

我有一个文本框数组

<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";

5 个答案:

答案 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";