Php 如何在for循环中将计数器用作变量扩展?

Php 如何在for循环中将计数器用作变量扩展?,php,for-loop,Php,For Loop,这是我的密码 for ($m = 1; $m <= $j; $m++) { if ($_POST['item_id".$m."'] > 0) { mysqli_query($con,"UPDATE Orders SET ProductID = '$_POST['item_id".$m."']' WHERE PO = '$k'"); mysqli_query($con,"UPDATE Orders SET Prod

这是我的密码

for ($m = 1; $m <= $j; $m++)
    {
        if ($_POST['item_id".$m."'] > 0)
        {
        mysqli_query($con,"UPDATE Orders SET ProductID = '$_POST['item_id".$m."']' WHERE PO = '$k'");
        mysqli_query($con,"UPDATE Orders SET Product_Name = '$_POST['item_name".$m."']' WHERE PO = '$k'");
        mysqli_query($con,"UPDATE Orders SET Quantity_Ordered = '$_POST['item_qty".$m."']' WHERE PO = '$k'");
        }
    }
得到同样的结果


有人能帮我吗?谢谢>-:

您必须转义MySQL查询中的变量:

其他的也一样。总而言之:

mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_id".$m."'] . "' WHERE PO = '$k'");
mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_name".$m."'] ."' WHERE PO = '$k'");
mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_qty".$m."'] ."' WHERE PO = '$k'");

你的报价不平衡。修复它们会给您带来以下好处:

for ($m = 1; $m <= $j; $m++)
{
    if ($_POST["item_id".$m] > 0)
    {
       mysqli_query($con,"UPDATE Orders SET ProductID = '" . $_POST["item_id".$m]   . "' WHERE PO = '$k'");
       mysqli_query($con,"UPDATE Orders SET Product_Name = '" . $_POST["item_name".$m] . "' WHERE PO = '$k'");
       mysqli_query($con,"UPDATE Orders SET Quantity_Ordered = '" . $_POST["item_qty".$m]  . "' WHERE PO = '$k'");
    }
}
($m=1;$m 0)的

{
mysqli_query($con,“更新订单集ProductID=”)“$\u POST[“item_id.”$m]。“'WHERE PO=”$k');
mysqli_query($con,“更新订单集产品_名称=”)”$\u POST[“项目_名称”。$m]。“'WHERE PO=”$k');
mysqli_query($con,“更新订单集订购数量=”)”$\u POST[“项目数量”$m]。“'WHERE PO='k'”);
}
}
也许是这样

for ($m = 1; $m <= $j; $m++) {
    $item = $_POST['item_id' . $m];
    if ($item > 0) {
        $itemName = $_POST['item_name' . $m];
        $itemQty = $_POST['item_qty' . $m];
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $item . "' WHERE PO = '" . $k . "'");
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $itemName . "' WHERE PO = '" . $k . "'");
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $itemQty . "' WHERE PO = '" . $k . "'");
    }
}
($m=1;$m 0)的
{
$itemName=$\u POST['item\u name.$m];
$itemQty=$\u POST['item\u qty.$m];
mysqli_查询($con,“更新订单集ProductID=”)“$item.”其中PO=”“$k.”);
mysqli_查询($con,“更新订单集ProductID=”)“$itemName.”其中PO=”“$k.”);
mysqli_查询($con,“更新订单集ProductID=”)“$itemQty.”其中PO=”“$k.”);
}
}

Hi代码不会返回错误,但不会将任何数据插入数据库。我试过
echo$\u POST[“item\u id1”]它返回我想要的值。我更新了答案,因为我不正确地复制和粘贴了ProductID。注意,需要定义
PO='$k'
$k
的值,以便该逻辑工作。不确定您试图用它来完成什么,但请仔细检查以确保定义了它。此外,这可以(也应该)组合到一个查询中。好的,我刚刚修复了,感谢您的帮助:-)嗨,同样,代码不会返回错误,但它不会将任何数据插入数据库。我试过echo$_POST[“item_id1”];它返回我想要的值show me please:
var\u dump($\u POST)for循环之前。Hi代码不会返回错误,但不会将任何数据插入数据库。我试过echo$_POST[“item_id1”];它返回我想要的值
mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_id".$m."'] . "' WHERE PO = '$k'");
mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_name".$m."'] ."' WHERE PO = '$k'");
mysqli_query($con,"UPDATE Orders SET ProductID = '". $_POST['item_qty".$m."'] ."' WHERE PO = '$k'");
for ($m = 1; $m <= $j; $m++)
{
    if ($_POST["item_id".$m] > 0)
    {
       mysqli_query($con,"UPDATE Orders SET ProductID = '" . $_POST["item_id".$m]   . "' WHERE PO = '$k'");
       mysqli_query($con,"UPDATE Orders SET Product_Name = '" . $_POST["item_name".$m] . "' WHERE PO = '$k'");
       mysqli_query($con,"UPDATE Orders SET Quantity_Ordered = '" . $_POST["item_qty".$m]  . "' WHERE PO = '$k'");
    }
}
for ($m = 1; $m <= $j; $m++) {
    $item = $_POST['item_id' . $m];
    if ($item > 0) {
        $itemName = $_POST['item_name' . $m];
        $itemQty = $_POST['item_qty' . $m];
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $item . "' WHERE PO = '" . $k . "'");
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $itemName . "' WHERE PO = '" . $k . "'");
        mysqli_query($con, "UPDATE Orders SET ProductID = '" . $itemQty . "' WHERE PO = '" . $k . "'");
    }
}