-1

提交数组数据后,我无法更新我的表。例如:1.产品名称:DELL 329 数量:5 价格:2500 数量:12500 2.产品名称:Dell 21 数量:8 价格:1800 数量:14400

但只有数组的最后一个索引在表中更新

like 产品名称:Dell 21 数量:8 数量:1800 数量:14400 产品名称:Dell 21 数量:8 数量:1800 数量:14400

            $in_no=$_POST['in_no'];

    //enter rows into item_info table
            foreach($_POST['p_name'] as $row=>$nm)
            {
                    $p_name=mysql_real_escape_string($nm);
                    $quantity=mysql_real_escape_string($_POST['quantity'][$row]);
                    $rate=mysql_real_escape_string($_POST['rate'][$row]);
                    $amount=mysql_real_escape_string($_POST['amount'][$row]);




            echo "Product Name:".$p_name." Quantity :".$quantity." Rate :".$rate." Amount :".$amount."<br/>";

            $involv = "UPDATE item_info set `p_name`='$p_name', `quantity`='$quantity', `rate`='$rate', `amount`='$amount' where `in_no`='$in_no'";

            mysql_query($involv);

`

4

3 回答 3

1

$in_no似乎在 foreach 循环之外保持不变。因此,您一次又一次地更新同一行。可能你应该在$_POST['p_name']

于 2013-06-10T12:08:38.647 回答
0

in_no您必须为要更新的每一行添加一个值,就像您对quantity,rate和所做的那样amount

//enter rows into item_info table
        foreach($_POST['p_name'] as $row=>$nm)
        {
                $p_name=mysql_real_escape_string($nm);
                $quantity=mysql_real_escape_string($_POST['quantity'][$row]);
                $rate=mysql_real_escape_string($_POST['rate'][$row]);
                $amount=mysql_real_escape_string($_POST['amount'][$row]);
                $in_no=$_POST['in_no'][$row];



        echo "Product Name:".$p_name." Quantity :".$quantity." Rate :".$rate." Amount :".$amount."<br/>";

        $involv = "UPDATE item_info set `p_name`='$p_name', `quantity`='$quantity', `rate`='$rate', `amount`='$amount' where `in_no`='$in_no'";

        mysql_query($involv);
于 2013-06-10T12:05:31.373 回答
0

据我从你的问题中了解到,你必须

1 - delete all records with the same in_no before foreach loop
2 - Replace update sql with insert

这将正常工作,否则您必须使用记录 id 而不是 in_no id 处理 item_info

希望这会很清楚

于 2013-06-10T12:08:03.993 回答