2010-06-27 61 views
0

我試圖從增加他們的自我爲好友阻止成員,但我似乎無法得到它的工作的最後一行代碼在我的MySQL查詢AND '$user_id' <> '$friend_id' 試圖檢查用戶ID是一樣的朋友ID,如果是這樣,停止運行查詢,但由於某種原因代碼仍然會運行。MySQL的查詢問題?

我該如何解決這個問題,以便查詢停止,當用戶試圖將自身添加爲好友運行?

這是MySQL查詢。

SELECT * 
FROM friends 
WHERE user_id = '$user_id' 
AND friend_id = '$friend_id' 
AND '$user_id' <> '$friend_id' 

這裏是MySQL表。

CREATE TABLE friends (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
user_id INT UNSIGNED NOT NULL, 
friend_id INT UNSIGNED NOT NULL, 
PRIMARY KEY (id), 
); 

回答

1

爲什麼你不能這樣做,因爲這樣簡單..

你將不得不當然這是提交用戶ID和friendID的一種形式。 例如表單提交值..

$user_id; 
$friend_id; 

那麼,你爲什麼不能比擬

if($user_id == $friend_id) { 
    //user has selected himself as friend 
} 
else { 
    // different user has been selected as friend 
} 

如果我是正確的,又在表單中,您可以限制通過不顯示自己的ID選擇作爲朋友。

有什麼意見?

0

應該工作(假定你是期運用PHP)。

0

你想在你的選擇查詢存檔什麼?

目前好像要顯示一個用戶的所有朋友。 如果出現這種情況,應該防止用戶儘快將自己添加爲朋友。 檢查插入語句時是否是合法的朋友。

這樣,你不必在你的數據庫壞數據,並節省您的數據庫資源,因爲該數據庫沒有檢查每一個你顯示朋友的時間。

0

的SELECT查詢是不是你需要的工作,以阻止用戶添加themselve爲好友。你應該在你的代碼的某個地方有一個INSERT語句,並且你必須工作。您可以簡單地測試$ user_id == $ friend_id是否爲真,並且不發出INSERT語句。

您還需要「乾淨」您現有的朋友表:

DELETE FROM friends WHERE user_id = friend_id;