在PHP的foreach循环中使用Update SQL查询

时间:2014-02-28 19:14:23

标签: php mysql sql foreach sql-update

我正在尝试创建一个显示多个用户数据的表。然后可以编辑和更新表格中的数据。下面是表单布局方式的示例:

    echo "<form action=AdminUpdateLecInfo.php method=post>";
    while ($return = mysql_fetch_assoc($result))    {
    $phonenumber = "$return[PhoneNumber]";
    $number = str_pad($phonenumber, 11, "0", STR_PAD_LEFT);
    echo " <tr class='data'>
           <input type='hidden' name='id'".$return['ID']."'' value= '".$return['ID']."' />
           <td class = 'title'><input class = 'title' type='text' name='title'".$return['ID']."'' value= '".$return['Title']."' /></td>
    }
    echo "</table>
    <input class='submit' type='submit' value='Update Info' />
    </form>

创建表后,信息将传递给“update.php”脚本。

    $sql="UPDATE completeinfo SET   Title='".$_POST['title'][$return['ID']]."'      
                          WHERE ID = '".$_POST['id'][$return['ID']]."'";
                          header("Location:Home.html");  

我遇到的问题是我需要在每个输入字段的名称中添加'“。$ return ['ID']。”',以便不是所有用户的详细信息都使用相同的值进行更新。我不确定是否需要在此查询周围应用foreach循环,以便它适用于每个用户并更新其详细信息。目前,更新查询无法正常工作,因为post方法没有正确地从表单中获取值。

2 个答案:

答案 0 :(得分:0)

您的问题是您的字段的名称,请使用:

$return_id = $return['ID'];

echo "
<tr class='data'>
    <td class = 'title'>
        <input type='hidden' name='id$return_id' value='$return_id' />
        <input class='title' type='text' name='title$return_id' value='$return_id' />
    </td>
</tr>";

在进行mysql更新之前,执行var_dump($_POST);,您将看到HTTP POST参数的内容,以便您可以查看它们是什么以及如何在查询中使用它们。

答案 1 :(得分:0)

您必须使用文本字段的名称作为数组,以便迭代数组

name='title'".$return['ID']."'
name='id'".$return['ID']."'