简体   繁体   中英

How to insert multiple form fields data with single invoice no in php mysql

i'm working in a project invoice system based on PHP/Mysqli with Jquery ajax. Invoice table structure is: table_invoice -> fields are (id, invoice_no, product, rate, qty). Add invoice form looks like:

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

in php file

<?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 TABLE:

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

where's the problem in query or form?

sorry for not having enough reputation to comment

same invoice number so you don't have to use index (say field: id is auto increment)

you may use the following query statement:

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

Change query like. You don't need to pass index with $i in invoice no because invoice no is not in an array.

 $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" />

Your invoice no is a value you can insert without an array

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]."')");
    }

Try this. Hope It will helps.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM