簡體   English   中英

在表格中插入多行

[英]Insert multiple rows into table

我將數據插入數據庫時​​遇到問題。 我使用添加按鈕添加新文本框,第一個文本框的默認值為10,一旦單擊添加按鈕,則下一個文本框將添加值結果,例如20、30 .....每個文本框都有自己的值。 以及其單個文本框值通過一次提交按鈕一次發送到同一張表。 這里的代碼:

//insert into database-Line Item Data
$itemlist = '';
$more = TRUE;
$i=1;
while ($more) {
    if (isset($_POST['lineitem_'.$i])) {
        $itemlist .= $_POST['lineitem_'.$i];
        $itemlist .= "<br />";
    } else {
        $more = FALSE;
    }
    $i++;
}
$query_line_item = "INSERT INTO tbl_order_item (item) values ('$itemlist')";
$result_line_item = mysqli_query($con, $query_line_item);

代碼僅發送第一個文本框值是10,其他文本框值不發送。

您必須使用文本框名稱數組來獲取所有文本框的值,將其名稱( name="lineitem[]" )放入生成的所有文本框中,並在提交數據時獲得一個值數組,然后在php中腳本使用foreach循環遍歷數組,並在該foreach循環中運行插入查詢,這樣您將同時獲得表中文本框的所有值。

使用此鏈接作為參考:

https://www.sanwebe.com/2013/04/capture-array-values-from-dynamic-input-fields-using-php

我更喜歡將其保存在數組中,然后使用序列化存儲在數據庫中。 當您要檢索時,可以反序列化並使用它。

$itemlist = array();
$more = TRUE;
$i=1;
while($more)
{
    if (isset($_POST['lineitem_'.$i]))
    {
        $itemlist[]= $_POST['lineitem_'.$i];
    }else
    {
        $more = FALSE;
    }
$i++;
}
$itemlist = serialize($itemlist);//serialize to store an array in database
$query_line_item = "INSERT INTO tbl_order_item (item) values ('$itemlist')";
$result_line_item = mysqli_query($con, $query_line_item);

當您想檢索並使用它時,只需使用

$itemlist = unserialize($itemlist);//unserialize to use as an array

根據您的最新代碼進行編輯:$ add_nr在此代碼的某個地方定義,我想

    $line_item = ''; 
     $more = TRUE; 
    for ($i=0; $i<5; $i++) 
    { 
    if((isset($_POST['lineitem_'.$i])) && ($_POST['lineitem_'.$i] !="") && isset($_POST['materialcode_'.$i]) && isset($add_nr))
    { 
    $line_item = $_POST['lineitem_'.$i]; 
    $materialcode = $_POST['materialcode_'.$i]; 
    $query_line_item = "INSERT INTO tbl_order_item (order_number, item, material) 
values ('$add_nr', '$line_item', '$materialcode')"; $result_line_item = mysqli_query($con, $query_line_item); 
    }else { 
    $more = FALSE; 
    } 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM