php / mysql UPDATE其中id = blah

时间:2013-04-14 19:25:56

标签: php html mysql

我有一个网站,您可以通过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);
}

2 个答案:

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

答案 1 :(得分:0)

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

 $updateAccept = "UPDATE messages SET status = 'a' WHERE id = '$id'";