0

我正在尝试创建一个管理系统,其中将显示帐户列表并在名为“帐户状态”的列下,如果获取的帐户状态为非活动状态(我已经完成),我想放置一个显示“激活”的按钮使用布尔值,其中 1 是活动的,0 是非活动的)。

但是,我无法让显示的按钮更新它所在的特定行,我尝试使用不起作用的更新查询。我的想法是否可行,或者我必须使用输入文本字段来进行手动更新?希望你能帮助我,因为我是 PHP 新手。

这是我的代码:

    <?php
//FETCH DATA
$query=mysql_query("SELECT * FROM accounts");
    while($fetch=mysql_fetch_array($query)){

                $accountupdate = $fetch["accountid"];

                echo" <tr>
                <td><font face='verdana,arial' size=-1>".$fetch["accountid"]."</td>
                <td><font face='verdana,arial' size=-1>".$fetch["username"]."</td>
                <td><font face='verdana,arial' size=-5>".$fetch["password"]."</td>
                <td><font face='verdana,arial' size=-1>".$fetch["firstname"]."</td>
                <td><font face='verdana,arial' size=-1>".$fetch["lastname"]."</td>                  
                <td><font face='verdana,arial' size=-1>".$fetch["email"]."</td>
                <td><font face='verdana,arial' size=-5>".$fetch["salt"]."</td>";

                    if($fetch["account_status"] == 0){
                        echo "<form action='' method='post'>
                             <td><input type='submit' name='activate' value='Activate'></td>
                             </form>";
                    }
                    else{
                        echo "<td><font face='verdana,arial' size=-1>".$fetch["account_status"]."</td>";
                    }
    }

if (isset($_POST['activate'])){
    mysql_query("UPDATE accounts SET account_status=1 WHERE accountid='$accountupdate'") or die(mysql_error());
    header("Location:admin_accounts.php");
}
?>
4

2 回答 2

0

添加一个带有要更新到表单的 id 的隐藏字段:

if($fetch["account_status"] == 0){
    echo "<form action='' method='post'>
        <td><input type='submit' name='activate' value='Activate'>
        input type='hidden' name='upd_id' value='{$fetch['accountid']}'</td>
        </form>";
}

然后提交后,从隐藏字段中读取 id:

if (isset($_POST['activate'])){
    mysql_query("UPDATE accounts SET account_status=1 WHERE accountid='{$_POST['ups_id']}' LIMIT 1") or die(mysql_error());
    header("Location:admin_accounts.php");
}
于 2013-02-26T08:20:16.677 回答
0

您可以使用超链接而不是使用多种形式。它需要一点代码更改

<td><input type='submit' name='activate' value='Activate'></td>
 TO 
 <td><a href='yourfilename.php?acctid='.$accountupdate >Activate</a></td>


      if (isset($_POST['activate'])){
      TO
      if (isset($_GET['acctid'])){
     $acctid = $_GET[acctid];
     mysql_query("UPDATE accounts SET account_status=1 WHERE accountid='$acctid '")         or            

死(mysql_error());}

最后按照建议将代码更改为 mysqli* :-)

于 2013-02-26T08:22:06.143 回答