使用循环文本框值PHP更新foreach语句中的查询值

时间:2013-04-26 16:37:33

标签: php mysql

我想在foreach语句中更新我的数据库,但是它给了我与我输入的最后一个值相同的值。

假设我在上一页有一个循环文本框。

    $i = 0;
    while($row_recordset = mysql_fetch_array($query_run)) 

            {           
        echo "<tr>";
        <td'><input type='text' name='atten_ave".$i."''></td>
        echo "</tr>";

  $i++;
}

现在,此代码将获取文本框的每个值,并应从上一页更新数据库。

foreach($_POST as $textbox => $values) {

            $sessionbatch = getbatchno('BATCHNO');

            $query_update = "UPDATE `grades` 
                            SET 
                            `ATTEN_SUM` = '$values'

                            WHERE
                            `BATCHNO` = '$sessionbatch'
                             ";

            if(mysql_query($query_update)){
                echo 'SUCCESS';
                } else{
                        die(mysql_error());
                          }

当我检查我的ATTEN_SUM COLUMN时,值是文本框上最后一个输入的SAME基础。

1 个答案:

答案 0 :(得分:0)

首先,遍历$_POST中的每个值。为您的文本框添加一个附加[]的标识名称,例如name="atten_ave[]"。这将在$_POST内为它们创建一个数组,然后您可以安全地循环遍历它们:

foreach($_POST["atten_ave"] as $textbox => $values) { ....

现在只要getbatchno('BATCHNO');返回它已经在该循环的生命周期内返回的值,它就会覆盖之前使用该类似值进行的更新。因此,如果它在每次迭代中返回相同的值,则查询将自行覆盖。