如何在一个查询dynamicali中同时使用php在mysql中插入多条记录?
我有一个发票模块。在这里我有购买物品的字段。当用户想要添加行时,我使用ajax/jQuery添加新行。现在我的问题是如何使用PHP在数据库中添加所有记录,我知道如何输入一条记录,但不知道要插入多少记录时如何添加多条记录。这是密码如何在一个查询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
<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 ....
}