提交总是获取最后一个值


Submitting always gets the last value

    <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'")
}

将隐藏字段名更改为数组,如下所示

<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'")
}

chandresh_cool指定的稍微修改,将得到您期望的结果。

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

相反,更改隐藏字段的名称以接受为数组,如下所示

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

然后你可以迭代id数组指定的chandresh_cool