1

我有一个站点,您可以在其中通过 php 向 mysql 服务器发送问候消息,以及一个管理员登录页面。在管理员登录页面中,它会显示所有状态为待处理、已拒绝或已接受的消息,并在每条消息旁边使用“拒绝”和“接受”按钮。目前,每当我点击“接受”或“拒绝”时,所有消息都会在数据库中被拒绝或接受。我想让按钮使用参数调用脚本,该参数是它们接受/拒绝的消息的 id,但老实说,我不知道正确的语法。任何帮助将不胜感激。

$query = "SELECT name, location, message, status FROM messages ORDER by status ";
if ($query_run = mysql_query($query)) 
{
    while ($query_row = mysql_fetch_assoc($query_run)) 
    {
        $name = $query_row['name'];
        $location = $query_row['location'];
        $message = $query_row['message'];
        $status = $query_row['status'];    

        echo '<form method="POST" action="login.php">';
        echo 'From: '.$name.'<br>Location: '.$location.'<br>Status: '.$status.'<br>Message: '.$message.'<br><br>';
?>

<input type="submit" value="Approve" name="accept">
<input type="submit" value="Reject" name="reject"></form>

<?php

if (isset($_POST['accept'])) 
{
    echo 'Accepted!';
    $updateAccept = "UPDATE messages SET status = 'a'"; 
    mysql_query($updateAccept);   
};

if (isset($_POST['reject'])) 
{
    echo 'Rejected!';
    $updateAccept = "UPDATE messages SET status = 'r'"; 
    mysql_query($updateAccept);
}
4

2 回答 2

3

像这样为每个提交按钮绑定一个隐藏字段

<form method="POST">
    <input type="submit" value="Whatever" name="trigger_update" />
    <input type="hidden" name="id_to_be_updated" value="<?php echo 'pass your id here'; ?>" />
</form>

<?php
   if(isset($_POST['trigger_update'])) {
      //Do sanitization according to your needs
      mysqli_query($connection, "UPDATE tbl_name SET column_name = 'whatever' WHERE id = {$_POST['id_to_be_updated']}");
   }
?>
于 2013-04-14T19:28:26.357 回答
0

您只需要WHERE在 UPDATE 语句中添加一个子句:

 $updateAccept = "UPDATE messages SET status = 'a' WHERE id = '$id'"; 
于 2013-04-14T19:28:47.117 回答