PHP从一个表单更新数据库上的不同字段

PHP从一个表单更新数据库上的不同字段,php,mysql,Php,Mysql,我的网站上有一个类似于收件箱的页面 我在每条消息旁边都有复选框 <input type='checkbox' name='check_list[]' value='$id'> 比较值:如果值==“delete”,则此查询:XXX Elseif value==“read”:执行此操作:YYY首先检查项目是否已检查,然后根据单击的按钮选择查询。有关示例,请参阅提供的代码 <form action="filename.php" method="POST"> <i

我的网站上有一个类似于收件箱的页面

我在每条消息旁边都有复选框

<input type='checkbox' name='check_list[]' value='$id'>

比较值:如果值==“delete”,则此查询:XXX


Elseif value==“read”:执行此操作:YYY

首先检查项目是否已检查,然后根据单击的按钮选择查询。有关示例,请参阅提供的代码

<form action="filename.php" method="POST">
    <input type="submit" name="delete_button" value="Delete">
    <input type="submit" name="read_button" value="Read">
</form>
但是,您应该注意,您正在使用的数据库扩展已弃用。有多种选择,
mysqli
是“更容易”的选择(与
mysql
非常相似),而PDO是更面向对象的解决方案。对预置语句的支持使mysql查询更容易、更安全。有关更多信息,请参见PHP官方网站:

旁注1:使用或替代传统的
mysql
函数


旁注2:使用而不是直接将请求值插入SQL字符串,因为后者会打开进行攻击。

使用
开关
,因为您的按钮将带来“值”。首先,使用相同的名称重命名按钮,如:

<button class="btn btn-default" input type="submit" name="button" value="Delete"> <span class="fa fa-trash"></span> Delete Selected</button>

<button class="btn btn-default" input type="submit" name="button" value="Read"> <span class="fa fa-ok"></span> Mark as Read</button>

您好,当我使用此代码单击“标记为已读”按钮时,它仍然会删除?我不知道您的确切数据库设置,但“删除”按钮会删除具有给定ID的元素,而“读取”按钮会将“邮件已删除”标志设置为1,它实际上不应删除,它只需将mail_deleted字段标记为1表示已删除,并在单击mark as read时将mail_read设置为1。此时,两个按钮都将删除标记为1?那么,两个查询几乎相同。查看编辑后的答案,检查其是否合适。但是,如果您不确定,您可能想查看一些关于生成查询的教程/等。谢谢,我已经更新了我的代码,但是当我单击“阅读”按钮时,它仍然将它们标记为已删除?我已使用此代码,但是两个按钮都将邮件标记为已删除?此示例只是为了“分隔”选项。你必须定义你想对每一个做什么。我的意思是,只有在每种情况下都定义了它,它才会被删除。它不应该实际删除,它应该只将mail_deleted字段标记为1表示已删除,并在单击mark as read时将mail_read设置为1。现在两个按钮都标记为1?不,正如您所说的,您只需要一个示例来划分返回的按钮,所以它就是这样做的。现在,您必须将查询放入案例中。我现在更新了我的答案,看一看。另一件事,尽快为mysqli或PDO替换mysql函数。)
<form action="filename.php" method="POST">
    <input type="submit" name="delete_button" value="Delete">
    <input type="submit" name="read_button" value="Read">
</form>
<?php
    if(!empty($_POST['check_list'])) {
        $check_list = implode(",", $_POST['check_list']);
        if (isset($_POST['delete_button'])) $query = "UPDATE mail SET mail_deleted='1' WHERE id IN (".implode(',', $check_list).")";
        if (isset($_POST['read_button']))   $query = "UPDATE mail SET mail_read='1' WHERE id IN (".implode(',', $check_list).")";
        mysql_query($query);
    }
?>
if (isset($_POST['delete_button'))
{
    // Do delete stuff
}
elseif (isset($_POST['read_button'))
{
    // Do read stuff
}
<button class="btn btn-default" input type="submit" name="button" value="Delete"> <span class="fa fa-trash"></span> Delete Selected</button>

<button class="btn btn-default" input type="submit" name="button" value="Read"> <span class="fa fa-ok"></span> Mark as Read</button>
$check_list = $_POST['check_list'];
switch($_POST['button']){
    case "Delete":
        $result = "UPDATE mail SET mail_deleted='1' WHERE id IN (".implode(',', $check_list).")";
    break;
    case "Read":
        $result = "UPDATE mail SET mail_read='1' WHERE id IN (".implode(',', $check_list).")";
    break;
}
mysql_query($result) or die(mysql_error());