PHP/MYSQL插入数组Foreach循环
这件事让我非常紧张,所以我提前感谢你的帮助。关于这个主题似乎有很多演练,但我可能会给这只猫剥皮,这有点不同 我有一个采购订单表单,我正在使用javascript向表中动态添加行,并捕获多行项目的数据。然后我为数组中的每一列收集数据。例如,我将“Cust_PN”、“Qty”、“Price”列和数组作为每个。行项目1-3的客户编号[0]客户编号[1]和客户编号[2]。然后我有数量[0]、数量[1]和数量[2]等等 我可以让它正确地回显,没有问题。然而,当我转到post时,我只是根据上面的示例发布最后一个条目*[3]中的数组数据 我目前有以下代码/查询。再次感谢您的帮助PHP/MYSQL插入数组Foreach循环,php,mysql,arrays,insert,Php,Mysql,Arrays,Insert,这件事让我非常紧张,所以我提前感谢你的帮助。关于这个主题似乎有很多演练,但我可能会给这只猫剥皮,这有点不同 我有一个采购订单表单,我正在使用javascript向表中动态添加行,并捕获多行项目的数据。然后我为数组中的每一列收集数据。例如,我将“Cust_PN”、“Qty”、“Price”列和数组作为每个。行项目1-3的客户编号[0]客户编号[1]和客户编号[2]。然后我有数量[0]、数量[1]和数量[2]等等 我可以让它正确地回显,没有问题。然而,当我转到post时,我只是根据上面的示例发布最后
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,My_PN,My_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
SELECT NOW(),'$SO_Num','$SO_Rev','$SO_Line_Item[$a]','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$My_PN[$a]','$My_PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Required_Date[$a]'" or die ('Error posting data');
foreach($Cust_PN as $a => $b) {
mysql_query($query1);
}
我很确定上面有很多问题。提前感谢。foreach必须在$query1之前:
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,My_PN,My_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
VALUES(NOW(),'$SO_Num','$SO_Rev','$SO_Line_Item[$a]','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$My_PN[$a]','$My_PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Required_Date[$a]')" or die ('Error posting data');
mysql_query($query1);
}
foreach必须在$query1之前:
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp,SO_Num,SO_Rev,SO_Line_Item,Cust_PN,Cust_PN_Rev,My_PN,My_PN_Rev,Description,
Qty,Sale_Price,UOM,Program,Required_Date)
VALUES(NOW(),'$SO_Num','$SO_Rev','$SO_Line_Item[$a]','$Cust_PN[$a]','$Cust_PN_Rev[$a]','$My_PN[$a]','$My_PN_Rev[$a]','$Description[$a]','$Qty[$a]','$Sale_Price[$a]','$UOM[$a]','$Program[$a]','$Required_Date[$a]')" or die ('Error posting data');
mysql_query($query1);
}
您的主要问题是,在循环之外声明
$query
。
它使它成为一个常量,并且也接受当时未定义的值$a
和$b
,因此导致SQL语法无效
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp, SO_Num, SO_Rev, SO_Line_Item, Cust_PN, Cust_PN_Rev, My_PN, My_PN_Rev, Description, Qty, Sale_Price, UOM, Program, Required_Date) VALUES (NOW(), '$SO_Num', '$SO_Rev', '$SO_Line_Item[$a]', '$Cust_PN[$a]', '$Cust_PN_Rev[$a]', '$My_PN[$a]', '$My_PN_Rev[$a]', '$Description[$a]', '$Qty[$a]', '$Sale_Price[$a]', '$UOM[$a]', '$Program[$a]', '$Required_Date[$a]');";
$q = mysql_query($query1) or die ('Error posting data');
}
试试看。
也修复了SQL查询。正确的语法是
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
您已将选择
替换为值
让我知道它是否有效,否则请告诉我它到底是什么错误。您的主要问题是,在循环外声明
$query
。
它使它成为一个常量,并且也接受当时未定义的值$a
和$b
,因此导致SQL语法无效
foreach($Cust_PN as $a => $b) {
$query1 = "INSERT INTO SO_Items (Timestamp, SO_Num, SO_Rev, SO_Line_Item, Cust_PN, Cust_PN_Rev, My_PN, My_PN_Rev, Description, Qty, Sale_Price, UOM, Program, Required_Date) VALUES (NOW(), '$SO_Num', '$SO_Rev', '$SO_Line_Item[$a]', '$Cust_PN[$a]', '$Cust_PN_Rev[$a]', '$My_PN[$a]', '$My_PN_Rev[$a]', '$Description[$a]', '$Qty[$a]', '$Sale_Price[$a]', '$UOM[$a]', '$Program[$a]', '$Required_Date[$a]');";
$q = mysql_query($query1) or die ('Error posting data');
}
试试看。
也修复了SQL查询。正确的语法是
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
您已将选择
替换为值
让我知道它是否有效,否则请告诉我它到底是什么错误。为什么不从这里开始?实际错误是什么?“我可以让它正确地回显…”:提到的回显在哪里?为什么不从这里开始?实际的错误是什么?“我可以让它正确地回显…”:提到的
echo
?SQL查询仍然不稳定。我的答案中已修复。SQL查询仍然不稳定。固定在我的回答中。甜蜜!将查询放入循环中就成功了。真不敢相信是这么直截了当!我没有改变sql语法。我更喜欢在中概述的insert方法,似乎如果我的表发生变化,我就不会将表单从大门中分离出来。非常感谢。哦,好的,很有趣。很高兴你当时能成功。(顺便问一下,你能接受答案吗?)太好了!将查询放入循环中就成功了。真不敢相信是这么直截了当!我没有改变sql语法。我更喜欢在中概述的insert方法,似乎如果我的表发生变化,我就不会将表单从大门中分离出来。非常感谢。哦,好的,很有趣。很高兴你当时能成功。(顺便问一下,你能接受这个答案吗?)