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


Adding a second array into the foreach query

我有两个动态输入,其中后续字段的数量随着形式的变化而变化,所以我使用数组来捕获字段输入。

目前,该脚本将从上一个查询中自动增加的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";

字符串内爆(字符串$glue,数组$pieces)

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

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