这个让我很慌乱,所以我提前感谢您的帮助。 关于这个话题似乎有很多演练,但似乎我可能给这只猫剥皮有点不同。
我有一个采购订单表单,我正在使用 javascript 将行动态添加到表中并捕获多个行项目的数据。然后,我收集数组中每一列的数据。 例如,我将"Cust_PN","数量","价格"作为每个列和数组。Cust_PN[0] Cust_PN[1] 和 Cust_PN[2] 分别适用于第 1-3 行项目。 然后我有 Qty[0]、Qty[1] 和 Qty[2] 等等。
我可以让它正确回声而不会出现问题。但是,当我去发布时,我只是根据上面的示例发布最后一个条目 *[3] 中的数组数据。
我目前有以下代码/查询。 。再次提供任何帮助将不胜感激。
$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);
}
我很确定上面有很多问题。提前谢谢你。
您的主要问题是在循环外声明$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,...)
你用SELECT
代替了VALUES
让我知道它是否有效,否则请告诉它到底是什么错误。
foreach 必须在 $query 1 之前:
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);
}