0

这让我很紧张,所以我提前感谢你的帮助。似乎有很多关于这个主题的演练,但似乎我可能会为这只猫剥皮有点不同。. . .

我有一个采购订单表格,我正在使用 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);
  }

我很确定上面有很多问题。. . 先感谢您。

4

2 回答 2

3

您的主要问题是,$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

让我知道它是否有效,否则请告诉我它到底是什么错误。

于 2012-06-15T22:40:43.257 回答
2

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);

  }
于 2012-06-15T22:31:42.467 回答