0
    <form action="" method="post">
<?php
    include 'Includes/database_connection.php';
    $sql = "select * FROM sims"     ;
    $result = mysql_query($sql,$con);       
    while($row = mysql_fetch_assoc($result)){
?>
        <ul class="category_list">
        <input type="hidden" value="$id1" name="hidden">
        <li><a href="#"><?php echo $row['phonenr'];?><input type="hidden" value="<?php echo $row['id'];?>" name="id"></a></li>

        </ul>

<?php
    }
?>
        <input type="submit" name="submit">
    </form>

所以我得到了上面的表格,您可以在其中选择电话号码,当您提交它们时,应该更新数据库。里面有23个id。提交表单后,它总是取最后一个值。我究竟做错了什么?

if(@$_POST ['submit']) 
{  
    $id = $_POST["id"];
    echo $id;
    include 'Includes/database_connection.php';
    mysql_query("UPDATE pairings SET sim_id='$id' 
                            WHERE unit_id='$id1'")
}
4

2 回答 2

3

将您的隐藏字段名称更改为这样的数组

<input type="hidden" value="<?php echo $row['id'];?>" name="id[]">

然后在 PHP 端使用循环来检索

foreach ($_POST['id'] as $val) {
    $id = $val;
    include 'Includes/database_connection.php';
    mysql_query("UPDATE pairings SET sim_id='$id' 
                        WHERE unit_id='$id1'")
}
于 2013-05-22T07:42:12.930 回答
0

由 chandresh_cool 指定的轻微修改,将获得您期望的结果。

输入名称替换为 id,因此 post 键仅包含 row[id],而不包含 $_POST['id']

而是更改隐藏字段的名称以接受这样的数组

<input type="hidden" value="<?php echo $row['id'];?>" name="id[]">

然后您可以按照 chandresh_cool 指定的方式迭代 id 数组

于 2013-05-22T08:13:52.820 回答