Php 在表中插入多行
我在将数据插入数据库时遇到问题。我使用添加按钮添加新的文本框,第一个文本框的默认值为10,单击添加按钮后,下一个文本框将依次添加值,如20、30、,。。。。每个文本框都有自己的值。并使用提交按钮将其单个文本框值一次性发送到同一个表。此处代码:Php 在表中插入多行,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我在将数据插入数据库时遇到问题。我使用添加按钮添加新的文本框,第一个文本框的默认值为10,单击添加按钮后,下一个文本框将依次添加值,如20、30、,。。。。每个文本框都有自己的值。并使用提交按钮将其单个文本框值一次性发送到同一个表。此处代码: //insert into database-Line Item Data $itemlist = ''; $more = TRUE; $i=1; while ($more) { if (isset($_POST['lineitem_'.$i]))
//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);
//插入数据库行项目数据
$itemlist='';
$more=正确;
$i=1;
而(更多美元){
如果(isset($\u POST['lineitem.'$i])){
$itemlist.=$\u POST['lineitem.'$i];
$itemlist.=“
”;
}否则{
$more=假;
}
$i++;
}
$query_line_item=“插入tbl_订单_项目(item)值(“$itemlist”)”;
$result\u line\u item=mysqli\u query($con,$query\u line\u item);
Code send only第一个文本框值为10,其他文本框值不发送。您必须使用文本框名称数组获取所有文本框的值,为此,将此名称(
name=“lineitem[]”“
)放入您生成的所有文本框中,并在提交数据时获得一个值数组,然后在php脚本中使用foreach
循环遍历数组,并在foreach
循环中运行插入查询,这样您将同时获得表中文本框的所有值
使用此链接作为参考:
您必须使用文本框名称数组来获取所有文本框的值,为此,请将此名称(
name=“lineitem[]”“
)放入您生成的所有文本框中,并在提交数据时获取一个值数组,然后在php脚本中使用foreach
循环遍历数组,并在foreach
循环中运行插入查询,这样您将同时获得表中文本框的所有值
使用此链接作为参考:
我更喜欢将其保存在数组中,然后使用serialize存储在数据库中。当您想要检索时,可以取消序列化并使用它
$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\u 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;
}
}
$line\u项目=“”;
$more=正确;
对于($i=0;$i我更喜欢将其保存在数组中,然后使用serialize存储在数据库中。当您想要检索时,可以取消序列化并使用它
$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\u 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;
}
}
$line\u项目=“”;
$more=正确;
对于($i=0;$ii已更改为:$line_item='';$more=TRUE;对于($i=0;$ii出现错误:注意:未定义索引:C:\xampp\htdocs\cmg logistics\make_order.php中的materialcode_1在lineYoy上没有检查是否设置了材料代码。如果没有检查,您将插入数据库。它可能没有设置。我已经更改为:$line_item='';more=TRUE;例如($i=0;$ii出现错误:注意:未定义索引:C:\xampp\htdocs\cmg logistics\make_order.php中的materialcode_1在lineYoy上没有检查是否设置了材料代码。如果没有检查,您将插入数据库。它可能没有设置。