有人请帮帮我,我有一个块用户脚本。基本上一切都很好。
当用户单击其他用户配置文件上的阻止时,这将回显用户 ID,并将user_id和其他profile_id插入数据库,并将列"阻止"从"0"设置为"1"。
登录的用户现在看不到他们阻止的其他用户,但是他们阻止的其他用户仍然可以看到他们的个人资料。
我的数据库的工作方式是它需要在两列中同时设置 ID,如下所示:
user_id | blocked_id | blocked
1 2 1
2 1 1
为了使两个用户都看不到对方并且都被阻止,我需要尝试插入两个id两次。
这有点像复制插入到表中的值以创建相同的结果两次,但在表列中只是相反。
所以目前我有:
$sql = mysql_query("INSERT INTO ptb_block_user (user_id, blocked_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")");
我需要插入这些值两次,但方式相反,所以它看起来像上表。
我希望我说清楚,有谁知道我该怎么做?
谢谢。
<?php
session_start();
confirm_logged_in();
if (isset ($_GET['to'])) {
$user_to_id = $_GET['to'];
}
if (!isset($_GET['to']))
exit('No user specified.');
$user_id = $_GET['to'];
$sql = mysql_query("INSERT INTO ptb_block_user (user_id, blocked_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")");
$result1 = mysql_query("UPDATE ptb_block_user SET blocked='1' WHERE user_id=".$_SESSION['user_id']."")
or die(mysql_error());
if($result1)
{
$_SESSION['message2']="<div class='"infobox-profile'"><strong>User Blocked</strong> - This user has successfully been blocked. You will no longer be abler to interact with each other's profiles.</div><div class='"infobox-close'"></div>";
header("Location: {$_SERVER['HTTP_REFERER']}");
}
else
if($result2)
{
$_SESSION['message2']="<div class='"infobox-favourites'"><strong>User Unblocked</strong> - This user has successfully been unblocked. You can now interact with each other's profiles.</div><div class='"infobox-close4'"></div>";
header("Location: {$_SERVER['HTTP_REFERER']}");
}
?>
你的问题对我来说并不完全清楚,但似乎你在问如何使用相同的查询插入两个值。 VALUES
可以采用多个元组:
INSERT INTO ptb_block_user (user_id, blocked_id, blocked) VALUES
(".$_SESSION['user_id'].", ".$user_to_id.", 1),
(".$user_to_id.", ".$_SESSION['user_id'].", 1)
您的代码极易受到 mysql 注入的影响,您不应使用 ext/mysql
:
http://www.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated
INSERT INTO ptb_block_user
(user_id, blocked_id)
VALUES
(".$_SESSION['user_id'].", ".$user_to_id."),
(".$user_to_id.",".$_SESSION['user_id'].")
?