在我的数组中使用INSERT INTO的正确方法

时间:2014-02-18 11:01:05

标签: php mysql arrays

我目前正在使用以下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的正确方法是什么?


别误会我的意思,我的代码正常运行,没问题。但我被告知这不是正确的方式

1 个答案:

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