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