为多列中的重复结果插入 MySQL 表结果两次


insert mysql table results twice for duplicate results in multiple columns?

有人请帮帮我,我有一个块用户脚本。基本上一切都很好。

当用户单击其他用户配置文件上的阻止时,这将回显用户 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'].")