将第二个数组添加到foreach查询中

时间:2015-04-04 12:53:09

标签: php mysql arrays foreach

我有2个动态输入,后续字段的数量从表单变为表单,因此我使用数组来捕获字段输入。

目前,该脚本会插入从上一个查询中获取的自动增量ID,并将每个数组元素的product_id插入一列。

所以如果我有来自product_ids [](123& 456)的两个输入,他们会像这样进入表格:

ID | PRODUCT_ID

01 | 123

01 | 456

我也想在同一个表和列中获取product_amount:

ID | PRODUCT_ID | product_amount

01 | 123 | 1

01 | 456 | 2

<input type="text" name="product_ids[]">
<input type="text" name="product_amounts[]">

目前这对我喜欢的两个输入之一工作正常。虽然我不能为我的生活弄清楚如何添加product_amounts []字段。

$product_ids = array();

foreach($product_id as $p_id)
$product_ids[] = "(LAST_INSERT_ID(), '". $p_id ."')";
$product_ids = implode(", ", $product_ids);

$query = "INSERT INTO order_list (ID,product_id) VALUES $product_ids";
$result = mysqli_query($conn, $query); 

我在foreach查询中尝试了一个AND运算符,但很快就知道它不能像那样工作。

修改

$product_ids = implode(", ", $product_ids, $product_amounts);
$query = "INSERT INTO order_list (ID,product_id,product_amount) VALUES $product_ids";

1 个答案:

答案 0 :(得分:0)

  

string implode(string $ glue,array $ pieces)

Source。您将三个参数传递给implode,这是无效的。你需要传递胶水,即逗号和数组。但是,即使你修复了这个问题,你的代码仍然是不合逻辑的(数组中应该没有名为product_ids的产品数量)并且由于缺乏对SQL injection的预防而不安全。不幸的是,您的代码也不愿意输入。如果您只使用数字,那么它将以这种方式运行,但您应该考虑使用预准备语句。

我会花一些时间在youtube上观看一些教程。在1-2小时内,您将有足够的知识来解决您的问题。