簡體   English   中英

使用WHERE的SQL語法錯誤

[英]SQL Syntax Error Using WHERE

我正在為我的網站創建一個消息傳遞系統,並且試圖向您的朋友展示,由於出現錯誤,我遇到了麻煩:

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有點生銹,所以請牢記這一點。

只需刪除查詢內部的括號即可...完成

首先,您不應該使用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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM