我有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";
答案 0 :(得分:0)
string implode(string $ glue,array $ pieces)
Source。您将三个参数传递给implode
,这是无效的。你需要传递胶水,即逗号和数组。但是,即使你修复了这个问题,你的代码仍然是不合逻辑的(数组中应该没有名为product_ids
的产品数量)并且由于缺乏对SQL injection的预防而不安全。不幸的是,您的代码也不愿意输入。如果您只使用数字,那么它将以这种方式运行,但您应该考虑使用预准备语句。
我会花一些时间在youtube上观看一些教程。在1-2小时内,您将有足够的知识来解决您的问题。