概述
This one has me pretty rattled so I thank you in advance for your assistance. There seem to be a number of walkthroughs on this topic but it seems I may be skinning this cat a bit different. . . .
I have a purchase order form that I'm using javascript to dynamically add rows to a table and capture data for multiple line items. I'm then collecting data for each column in an array. For example I have "Cust_PN", "Qty", "Price" as columns and arrays for each. . . Cust_PN[0] Cust_PN[1] and Cust_PN[2] for line items 1-3 respectively. I then have Qty[0], Qty[1], and Qty[2] and so on.
I can get this to echo properly without issue. However, when I go to post I am only posting the array data from the last entry *[3] per my example above.
I currently have the following code/query. . . again any help would be much appreciated.
$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);
}
I'm quite certain there are a number of issues in the above. . . thank you in advance.
解决方案
Your main issue is, declaring $query outside the loop.
It makes it a constant, and that too, takes values $a and $b which are that time, undefined, so results in invalid syntax for 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');
}
Try that.
Fixed your SQL query too. Correct syntax is
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
You had put SELECT in place of VALUES
Let me know if it works, and otherwise please tell what error it ives exactly.
最后
以上就是孤独含羞草为你收集整理的php 循环读取数组写入mysql,PHP / MYSQL插入数组Foreach循环的全部内容,希望文章能够帮你解决php 循环读取数组写入mysql,PHP / MYSQL插入数组Foreach循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复