为两列中的重复结果插入mysql表结果?

时间:2013-02-01 00:50:17

标签: php mysql

有人请帮助我,我有一个块用户脚本。基本上一切正常。

当用户点击其他用户个人资料上的阻止时,这会回显用户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']}");

}
?>

2 个答案:

答案 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'].")