Php 仅影响第一行的Mysql更新错误?

Php 仅影响第一行的Mysql更新错误?,php,mysql,sql,Php,Mysql,Sql,使用sql UPDATE查询时,它只影响成员的第一行 <?php $query = mysqli_query($db, "SELECT * FROM `members` ORDER BY `siteRank`"); $result = mysqli_fetch_assoc($query); ?> <?php if($_POST['AccountUpdate']) { //mysqli_query($db, "UPDATE members SET usernam

使用sql UPDATE查询时,它只影响成员的第一行

<?php
$query = mysqli_query($db, "SELECT * FROM `members` ORDER BY `siteRank`");
$result = mysqli_fetch_assoc($query);
?>
<?php
if($_POST['AccountUpdate'])
 {
        //mysqli_query($db, "UPDATE members SET username='$Username' WHERE id='$$IdentifcationNumber' ORDER BY id DESC LIMIT 1");
        echo $result['id'];
        echo $result['username'];
        echo 'separeator';
        echo $IdentifcationNumber;
 }
?>

<form method="post" action="viewprofile.php">
<table border="1px">
    <tr>
        <th>ID</th>
        <th>Username</th>
        <th>Password</th>
        <th>Email</th>
        <th>Browser</th>
        <th>IP</th>
        <th>Site Rank</th>
        <th>PyroCoins</th>
        <th>PIN</th>
        <th>Status</th>
        <th>Date Joined</th>
        <th>Update Account</th>
    </tr>
    <?php
        while($result = mysqli_fetch_assoc($query)){
    ?>
    <form method="post" action="viewprofile.php">
    <tr>
        <td><input readonly="readonly" value="<?php echo $result['id'];?>" /></td>
        <td><?php echo $result['username'];?></td>
        <td><input text="text" name="ChangePassword" value="<?php echo $result['password'];?>" /></td>
        <td><?php echo $result['email'];?></td>
        <td><?php echo $result['browser'];?></td>
        <td><?php echo $result['ip'];?></td>
        <td><?php echo $result['siteRank'];?></td>
        <td><input type="text" name="ChangePyroCoins" value="<?php echo $result['PyroCoins'];?>" /></td>
        <td><?php echo $result['pin'];?></td>
        <td>
            Current Status:
            <input readonly="readonly" value="<?php echo $result['status'];?>" />


            <select name="ChangeStatus">
                <option value="<?php echo $result['status'];?>"><?php echo $result['status'];?></option>
                <option value="[ Content Deleted ]">[ Content Deleted ]</option>
            </select>

        </td>
        <td><?php echo $result['date'];?></td>
        <td><input type="submit" name="AccountUpdate" value="Update Account"></td>
    </tr>
    <?php
        }
    ?>

</table>
</form>


查询中不需要“
按id排序描述限制1

UPDATE members SET username='$Username' WHERE id='$IdentifcationNumber'

@Isaak Markopoulos-这没有经过测试,但是没有嵌套表单,所以希望在发布表单时能够减少混淆。html中的id字段已命名,因此在发布的变量中至少应该有一个可用的id

<html>
    <head>
       <title>crazy little monkey</title>
    </head>
    <body>
    <?php
        /* This only gets executed if it is a POST request */
        if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['AccountUpdate'] ) && isset( $_POST['IdentifcationNumber'] ) ){

            /* I assume this is the correct id - there was no name for the form element previously */
            $IdentifcationNumber=$_POST['IdentifcationNumber'];
            $sql="UPDATE members SET username='$Username' WHERE id='$IdentifcationNumber';";

            mysqli_query( $db, $sql );

            echo $result['id'];
            echo $result['username'];
            echo 'separeator';
            echo $IdentifcationNumber;
        }   
        /* This gets executed for any request */
        $query = mysqli_query( $db, "SELECT * FROM `members` ORDER BY `siteRank`;" );
        $result = mysqli_fetch_assoc( $query );
    ?>
    <!-- parent table -->
    <table border="1px">
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Password</th>
            <th>Email</th>
            <th>Browser</th>
            <th>IP</th>
            <th>Site Rank</th>
            <th>PyroCoins</th>
            <th>PIN</th>
            <th>Status</th>
            <th>Date Joined</th>
            <th>Update Account</th>
        </tr>
        <tr>
            <td colspan=12>
            <!-- begin a form / table for each row in rs -->
            <?php
                $rc=0;
                while( $result = mysqli_fetch_assoc( $query ) ){
                    $rc++;
                    echo "
                        <!-- unique name for each form - not essential -->
                        <form name='vpf_{$rc}' action='viewprofile.php' method='post'>
                            <!-- nested child table fully contained within it's parent form element -->
                            <table>
                                <td><input type='text' name='IdentifcationNumber' readonly='readonly' value='".$result['id']."' /></td>
                                <td>".$result['username']."</td>
                                <td><input text='text' name='ChangePassword' value='".$result['password']."' /></td>
                                <td>".$result['email']."</td>
                                <td>".$result['browser']."</td>
                                <td>".$result['ip']."</td>
                                <td>".$result['siteRank']."</td>
                                <td><input type='text' name='ChangePyroCoins' value='".$result['PyroCoins']."' /></td>
                                <td>".$result['pin']."</td>
                                <td>
                                    Current Status:
                                    <input readonly='readonly' value='".$result['status']."' />
                                    <select name='ChangeStatus'>
                                        <option value='".$result['status']."'>".$result['status']."
                                        <option value='[ Content Deleted ]'>[ Content Deleted ]
                                    </select>
                                </td>
                                <td>".$result['date']."></td>
                                <td><input type='submit' name='AccountUpdate' value='Update Account'></td>                                  
                            </table>
                        </form>";
                }/* Close the while loop - note that the form(s) is/are FULLY contained within the loop - NO nesting */
            ?>
            </td>
        </tr>
    </table>
    </body>
</html>

疯狂的小猴子
身份证件
用户名
密码
电子邮件
浏览器
知识产权
网站排名
火钱
别针
地位
加入日期
更新帐户

您在查询中有一个输入错误,
$$
,您应该通过
限制删除
订单。当然,您应该删除查询的注释。这与SQL Server或Oracle有什么关系?我已经解决了这个问题,但仍然存在@jayblanchard问题。我假设您显示的代码是viewprofile.php。您只需继续循环并查看第一条记录。我不知道你想在WHILE循环中对表单做什么。每次提交表单时,您都会重新查询并重新开始记录1。我尝试过这样做,并删除了ORDER BY id desc,我更改了所有设置变量,它仍会不断更新第一个表行。