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

WHEREUPDATE ステートメントに句を追加するだけです。

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