我尝试使用多重删除选项创建邮件收件箱。用户选择多个选择框,它们将通过提交按钮发布。所以帖子的值将是
message[] 1
message[] 2
submit delete
这些是正在使用的复选框:
message id1
<input type='checkbox' id='{inbox_id}' name='message[]' value='{$inbox_id}'/>
message id2
<input type='checkbox' id='{inbox_id}' name='message[]' value='{$inbox_id}'/>
<input class='button' type='submit' value='delete' name='submit'>
这是邮件处理的代码:
else if($_GET['p'] == "del") {
//some user checks
$message_del=$_POST['message'];
$N = count($message_del);
for($i=0; $i < $N; $i++)
{
$result = $db->prepare("UPDATE `messages` SET `outbox`=0 AND `inbox`=0 WHERE `id`= :upid");
$result->bindParam(':upid', $message_del[$i]);
$result->execute();
}
echo "messages archived";
}else{echo "Your TV is lonely"; }
这是包含6条消息的数据库:
# Name Type Collation Attributes Null Default Extra
1 id int(9) No None AUTO_INCREMENT
2 ip varchar(255)utf8_unicode_ci No
3 time datetime Yes NULL
4 from varchar(16) utf8_unicode_ci Yes NULL
5 to varchar(16) utf8_unicode_ci Yes NULL
6 subject varchar(50) utf8_unicode_ci No
7 message text utf8_unicode_ci No None
8 read int(1) No 0
9 inbox int(1) Yes 1
10 outbox int(1) Yes 1
id ip time from to subject message read inbox outbox
1 00.00.00.00 10-3-2014 19:00 sender receiver subject message 1 1 0
2 00.00.00.00 11-3-2014 19:00 sender receiver subject message 1 1 0
3 00.00.00.00 12-3-2014 19:00 sender receiver subject message 1 1 0
4 00.00.00.00 13-3-2014 19:00 sender receiver subject message 0 1 0
5 00.00.00.00 14-3-2014 19:00 sender receiver subject message 1 0 1
6 00.00.00.00 15-3-2014 19:00 sender receiver subject message 0 0 1
但不知何故(我猜)查询没有运行。我怕我忘记了一些简单的事情。
答案 0 :(得分:1)
这是UPDATE的单表语法:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
当你说SET outbox=0 AND inbox=0
时,这仍然是有效的语法,但会做出与你预期的不同的事情。