【问题标题】:Adding a second array into the foreach query在 foreach 查询中添加第二个数组
【发布时间】:2015-04-04 12:53:09
【问题描述】:

我有 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";

【问题讨论】:

  • 你的问题有点不清楚?尝试指出您希望在您编写的向下代码中的 product_amounts 数组的位置?
  • $product_ids = implode(", ", $product_ids, $product_amounts); $query = "INSERT INTO order_list (ID,product_id,order_amount) VALUES $product_ids";

标签: php mysql arrays foreach


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2015-01-10
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多