0

これはかなりガタガタしているので、よろしくお願いします。このトピックについてはいくつかのウォークスルーがあるようですが、私はこの猫の皮を少し違うようにしています。。。。

javascriptを使用してテーブルに行を動的に追加し、複数のラインアイテムのデータをキャプチャする発注書フォームがあります。次に、配列の各列のデータを収集しています。たとえば、それぞれの列と配列として「Cust_PN」、「Qty」、「Price」があります。。。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 に答える