使用PHP从MySQL获取表并使用Button进行更新?

时间:2013-02-26 08:08:19

标签: php html mysql

我正在尝试创建一个管理系统,其中将显示帐户列表,并在名为“帐户状态”的列下,如果提取的帐户状态为非活动状态,我想放置一个显示“激活”的按钮(I已经使用布尔做了它,其中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");
}
?>

2 个答案:

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

答案 1 :(得分: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 *: - )