我目前正在使用以下INSERT INTO:
$sql= "INSERT INTO orders (Orderdatum, Naam, Woonplaats, Straatnaam, Huisnummer, Telefoon, Aantal, Prijs)
VALUES (now(), '$_POST[naam]','$_POST[woonplaats]','$_POST[straatnaam]','$_POST[huisnummer]','$_POST[telefoonnummer]', '$total_number', '$total_price')
";
mysql_query($sql);
和
foreach ($products as $key => $product){
$number = isset($_POST[$key])?$_POST[$key]:'';
if ($number > 0){
$sql2 = "INSERT INTO ordered_products (Ordernr, Product, Aantal) VALUES (last_insert_id(), '$product', '$number')";
mysql_query($sql2);
}
}
将客户订单信息放在1个表格中,将订购的产品放在另一个表格中。使用正确的Ordernr。
这是正常的。但我被告知第二段代码foreach
不应该像我现在那样完成。
如果我添加更多值并制作更大的数组,从长远来看会产生问题。
所以我想知道使用这个foreach
的正确方法是什么?
别误会我的意思,我的代码正常运行,没问题。但我被告知这不是正确的方式
答案 0 :(得分:0)
试试这个:
$InsertData = array();
$Last_Insert_Id = mysql_insert_id();
foreach ($products as $key => $product){
$number = isset($_POST[$key])?$_POST[$key]:'';
if ($number > 0){
$InsertData[] = "('{$Last_Insert_Id}', '{$product}', '{$number}')";
}
}
$sql2 = "INSERT INTO ordered_products (Ordernr, Product, Aantal)
VALUES " . implode(", ", $InsertData) . " ";
mysql_query($sql2);