[英]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.