繁体   English   中英

PHP中具有相同表单名称的多行更新

[英]Multiple Rows Update with same form names in PHP

我再次陷入PHP,并具有以下更新代码。 这有效,但仅适用于插入的最后一个? 我需要更新所有的grid id。 我以为将[]添加到不唯一的表单域中允许PHP将其解析为数组,但仍将其视为一个域?

我的HTML我有:

<input type="hidden" name="gritemid[]" value="<?PHP echo $row2['gritemid']; ?>">
<input type="text" name="grqty[]" id="grqty[]" value=""  />

以下PHP代码

if(isset($_POST['storageloc']))
{
    //Set the GRQTY to subtract from the Orderqty on each item in the list if selected
    // find out how many records there are to update
    $size = count($_POST['gritemid']);

    // start a loop in order to update each record
    $i = 0;
    while ($i < $size) {
        // define each variable
        $gritemid= $_POST['gritemid'][$i];
        $grqty= $_POST['grqty'][$i];
        if ($grqty > "0") {
            // do the update and print out some info just to provide some visual feedback
            $query = "UPDATE gr_items SET orderqty = orderqty - $grqty WHERE gritemid = '$gritemid' LIMIT 1";
            mysql_query($query) or die ("Error in query: $query");
        }
        ++$i;
    }
    mysql_close();

首先,在将后置变量放入查询之前,您确实应该对其进行一些验证/清除。 由于您使用的两个变量都似乎是整数,因此我建议使用intval() -

// define each variable
$gritemid = intval($_POST['gritemid'][$i]);
$grqty = intval($_POST['grqty'][$i]);

如果将对mysql_query()的调用替换为print($query); 您看到期望的多个查询了吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM