我正在为我的网站创建一个消息系统,我正在尝试展示你的朋友,我遇到了麻烦,因为我收到了错误:
Select Friend: Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `user_two` FROM `friends` WHERE (`user_one`='2')' at line 1
继承人我的PHP代码:
mysql_connect("************", "*****", "**********");
mysql_select_db("******");
if(isset($_GET['user']) && !empty($_GET['user'])){
echo "Send Message To " . getuser($_GET['user'], 'first_name');
} else {
echo "Select Friend: ";
$my_id = $_SESSION['user_id'];
$friend_list = mysql_query("SELECT `user_one` FROM `friends` WHERE (`user_two`='$my_id') OR SELECT `user_two` FROM `friends` WHERE (`user_one`='$my_id')");
if (!$friend_list) { // add this check.
die('Invalid query: ' . mysql_error());
}
while($run_user = mysql_fetch_array($friend_list)){
if($run_user['user_one'] == $my_id){
echo "1";
} else {
echo "2";
}
}
}
继承我朋友的桌子结构:
`id` int(11) AUTO INCREMENT PRIMARY
`user_one` int(11)
`user_two` int(11)
我正在尝试获取朋友ID,并确保它不是我的,然后显示我需要的信息,我对SQL有点生疏,所以请记住这一点。
答案 0 :(得分:0)
只需删除查询内部的括号...已完成
答案 1 :(得分:0)
首先,你不应该使用mysql_。它已被弃用。使用mysqli。
您的查询是:
SELECT `user_one`
FROM `friends`
WHERE (`user_two`='$my_id') OR
SELECT `user_two`
FROM `friends`
WHERE (`user_one`='$my_id')
这没有意义。 OR
不用于连接两个查询。一种解决方案是使用union all
:
SELECT `user_one`
FROM `friends`
WHERE `user_two` = '$my_id'
UNION ALL
SELECT `user_two`
FROM `friends`
WHERE `user_one` = '$my_id';