如何在php mysql中使用单个发票号插入多个表单字段数据



我正在使用一个基于 PHP/Mysqli 和 Jquery ajax 的项目发票系统。发票表结构为:table_invoice ->字段为(ID、invoice_no、产品、费率、数量(。 添加发票表单如下所示:

<form action="" method="post" id="addForm">
<input type="text" name="productName[]" placeholder="" class="form-control proList" autocomplete="off" />
<input type="text" name="productRate[]" placeholder="" class="form-control" autocomplete="off" />
<input type="text" name="productQuantity[]" placeholder="" class="form-control" autocomplete="off" />
<input type="hidden" name="invoiceNo" value="19299092" />
<input type="hidden" name="action" id="action" value="insert" />
<button type="submit" name="submit" id="submit" class="btn btn-success"><i class="fa fa-plus"></i> Save</button>
</form>

在 PHP 文件中

<?php
include("connection.php");
if($_POST["action"] == 'insert'){
$invoice = $_POST["invoiceNo"];
$productName = $_POST["productName"];
$productRate = $_POST["productRate"];
$productQuantity = $_POST["productQuantity"];
for($i=0;$i < count($productName);$i++){
$query = mysqli_query($conn,"INSERT INTO tbl_invoice(invoice_no,product,rate,qty) VALUES('".$invoice[$i]."','".$productName[$i]."','".$productRate[$i]."','".productQuantity[$i]."')");
}
}

MYSQL 表:

19299092, Product 1, 100, 10
0,        Product 2, 150, 20
0,        Product 3, 200, 20

查询或表单中的问题在哪里?

很抱歉没有足够的声誉来评论

相同的发票编号,因此您不必使用索引 (比如说字段:ID是自动递增(

您可以使用以下查询语句:

"INSERT INTO 
tbl_invoice 
SET invoice_no = '" . $invoice . "', 
product = '" . $productName[$i] . "', 
rate = '" . $productRate[$i] . "', 
qty = '" . $productQuantity[$i] . "'"

更改查询喜欢。您不需要在invoice no中传递带有$i的索引invoice no因为 index 不在数组中。

$query = mysqli_query($conn,"INSERT INTO tbl_invoice(invoice_no,product,rate,qty) VALUES('".$invoice."','".$productName[$i]."','".$productRate[$i]."','".productQuantity[$i]."')");
<input type="hidden" name="invoiceNo" value="19299092" />

您的发票编号是您可以在没有数组的情况下插入的值

for($i=0;$i < count($productName);$i++){
$query = mysqli_query($conn,"INSERT INTO tbl_invoice(invoice_no,product,rate,qty) VALUES('".$invoice."','".$productName[$i]."','".$productRate[$i]."','".productQuantity[$i]."')");
}

试试这个。希望它能有所帮助。

最新更新