Как вставить данные нескольких полей формы с одним счетом нет в php mysql - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю в системе счетов проекта, основанной на PHP / Mysqli с Jquery ajax.Структура таблицы счетов-фактур: table_invoice -> поля (id, invoice_no, product, rate, qty).Форма добавления счета выглядит следующим образом:

<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

где проблема в запросе или форме?

Ответы [ 3 ]

1 голос
/ 20 сентября 2019

извините за отсутствие репутации, чтобы комментировать

тот же номер счета, поэтому вам не нужно использовать индекс (скажем, поле: id - автоинкремент)

вы можете использовать следующий запросзаявление:

"INSERT INTO 
tbl_invoice 
SET invoice_no = '" . $invoice . "', 
    product = '" . $productName[$i] . "', 
    rate = '" . $productRate[$i] . "', 
    qty = '" . $productQuantity[$i] . "'"
0 голосов
/ 20 сентября 2019

Ваш номер счета-фактуры - это значение, которое вы можете вставить без массива

для ($ i = 0; $ i

Надеюсь, это поможет.

0 голосов
/ 20 сентября 2019

Изменить запрос, как.Вам не нужно передавать индекс с $i в invoice no, потому что invoice no отсутствует в массиве.

 $query = mysqli_query($conn,"INSERT INTO tbl_invoice(invoice_no,product,rate,qty) VALUES('".$invoice."','".$productName[$i]."','".$productRate[$i]."','".productQuantity[$i]."')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...