我有两个动态输入,其中后续字段的数量随着形式的变化而变化,所以我使用数组来捕获字段输入。
目前,该脚本将从上一个查询中自动增加的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小时内,你将有足够的知识来解决你的问题。