【发布时间】:2013-04-14 19:25:56
【问题描述】:
我有一个站点,您可以在其中通过 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);
}
【问题讨论】:
-
UPDATE ... WHERE你需要一个WHERE子句。 -
添加一个带有记录 id 的隐藏字段,使用
$_POST读取它并将其应用于您的 sql-query。 -
请考虑切换到 mysqli 或 PDO,而不是弃用的 mysql_* 函数。
-
那么问题出在哪里?只需添加一个
WHERE子句就可以了?