Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在一个查询dynamicali中同时使用php在mysql中插入多条记录?_Php_Mysql - Fatal编程技术网

如何在一个查询dynamicali中同时使用php在mysql中插入多条记录?

如何在一个查询dynamicali中同时使用php在mysql中插入多条记录?,php,mysql,Php,Mysql,我有一个发票模块。在这里我有购买物品的字段。当用户想要添加行时,我使用ajax/jQuery添加新行。现在我的问题是如何使用PHP在数据库中添加所有记录,我知道如何输入一条记录,但不知道要插入多少记录时如何添加多条记录。这是密码 <html> <head> <title>Document</title> <script src="js/jquery-1.11.2.min.js"></script> <script t

我有一个发票模块。在这里我有购买物品的字段。当用户想要添加行时,我使用ajax/jQuery添加新行。现在我的问题是如何使用PHP在数据库中添加所有记录,我知道如何输入一条记录,但不知道要插入多少记录时如何添加多条记录。这是密码

<html>
<head>
<title>Document</title>

<script src="js/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
 $("#insert-more").click(function () {
     $("#JTable").each(function () {
         var tds = '<tr>';
         jQuery.each($('tr:last td', this), function () {
             tds += '<td>' + $(this).html() + '</td>';
         });
         tds += '</tr>';
         if ($('tbody', this).length > 0) {
             $('tbody', this).append(tds);
         } else {
             $(this).append(tds);
         }
     });
});

</script>


</head>

<body>

<form name="items" method="post">
<table id="JTable" style="margin-left:50px;">
    <thead>
        <th class="tblfldname">Product</th>
        <th class="tblfldname">Quantity</th>
        <th class="tblfldname">Price</th>
    </thead>
    <tbody>
        <tr>
            <td>
              <select name="pname[]" class="pname" style="padding:4px; width:150px;">

                    <option></option>

              </select>
            </td>
            <td>
              <input type="text" name="qty[]" style="width:150px; padding:4px;" />
            </td>
            <td>
              <input type="text" name="price[]" class="price" style="width:150px; padding:4px;" />

            </td>
        </tr>
    </tbody>
                 <input type="submit" name="submit" />

</table>
</form>
            <a href="#" id="insert-more"> Add New Row </a>


</body>
</html>

文件
$(“#插入更多”)。单击(函数(){
$(“#JTable”)。每个(函数){
var tds=“”;
每个($('tr:last td',this),函数(){
tds+=''+$(this.html()++'';
});
tds+='';
如果($('tbody',this).length>0){
$('tbody',this).append(tds);
}否则{
$(此).append(tds);
}
});
});
产品
量
价格

另外,所有新生成的行的字段都具有相同的名称。

您只需迭代
pname
并对每个元素执行一次查询:

$pname = $_POST['pname'];
$qty = $_POST['qty'];
$price = $_POST['price'];
for ($i = 0; $i < count($pname); $i++) {
  $name = mysqli_escape_string ($conn, $pname[$i]);
  $quantity = intval($qty[$i]);
  $prc = doubleval($price[$i]);
  $sql = "insert into bla(name, qty, price) values('{$name}', {$quantity}, {$prc})";
  $conn->query($sql);
}
$pname=$\u POST['pname'];
$qty=$_POST['qty'];
$price=$_POST['price'];
对于($i=0;$iquery($sql);
}
当然,您必须检查这些值是否合理。。。请记住,
[]
与XHTML不兼容,这是PHP的事情

INSERT INTO `table`(`field0`, `field1`, `field2`)
VALUES
('value0forfield0', 'value0forfield1', 'value0forfield2'), 
('value1forfield0', 'value1forfield1', 'value1forfield2'), 
('value2forfield0', 'value2forfield1', 'value2forfield2'), 
('value3forfield0', 'value3forfield1', 'value3forfield2');

当您不知道将有多少记录时,您可以执行以下操作:

$query = "INSERT INTO `table`(`field0`, `field1`, `field2`) ";
$query .= "VALUES ";
foreach($record as $row)
{
    $query .= "('".$row['field0']."', '".$row['field1']."', '".$row['field2']."'),";
}
$query = preg_replace("/\,$/", ";", $query);

通过按您的方式命名输入字段,如果其中一个字段没有应答,则可能会出现数据验证问题。在我看来,最好将您的字段命名为:

<select name="dataset[0]['pname']>...</select>
<input type="text" name="dataset[0]['qty'] ..... >
<input type="text" name="dataset[0]['price'] ..... >

<select name="dataset[1]['pname']>...</select>
<input type="text" name="dataset[1]['qty'] ..... >
<input type="text" name="dataset[1]['price'] ..... >

这只是HTML和JavaScript。写入数据库的代码在哪里?mhh标题是关于写入数据库,问题更多的是关于阅读?!你能更详细地解释一下你想做什么吗?嘿,我想要一个php脚本,可以在这个表单上执行向mysql插入记录的操作。请阅读我给出的描述,我说“我们不知道用户想要插入多少记录。”
foreach($_POST["dataset"] as $rcd){
   $name = $rcd["pname"];
   $qty = $rcd["qty"];
   $price = $rcd["price";
   ..... do whatever db stuff needs to be done ....
}