有人请帮助我,我有一个块用户脚本。基本上一切正常。
当用户点击其他用户个人资料上的阻止时,这会回显用户ID,并将user_id和其他profile_id插入数据库,并将“阻止”列从“0”设置为“1”。
登录的用户现在无法看到他们阻止的其他用户,但是他们阻止的其他用户仍然可以看到他们的个人资料。
我的数据库的工作方式是它在两列中都需要两个set 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']}");
}
?>
答案 0 :(得分:0)
我的问题并不完全清楚,但您似乎在问如何使用相同的查询插入两个值。 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
答案 1 :(得分:0)
INSERT INTO ptb_block_user
(user_id, blocked_id)
VALUES
(".$_SESSION['user_id'].", ".$user_to_id."),
(".$user_to_id.",".$_SESSION['user_id'].")