提交始终获取最后一个值

时间:2013-05-22 07:39:55

标签: php mysql

    <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>

所以我得到了上面的表格,你可以选择phonenumbers,当你提交它们时,应该更新数据库。其中有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'")
}

2 个答案:

答案 0 :(得分: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'")
}

答案 1 :(得分:0)

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

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

而是将隐藏字段的名称更改为接受为此类

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

然后你可以按照chandresh_cool

的指定迭代id数组
相关问题