2014-04-14 34 views
0

我正在創建一個系統來保持我的應用程序中的關係。當某人說某人存儲在您的數據庫ID和他的朋友(按該順序)時。當他人接受請求時,他的朋友的身份證和其他身份證(以相反的順序)被保存。在MySQL和PHP中創建FRIEND關係

驗證你們兩個是朋友必須看到有這兩行。

最後一個問題是,當這是真的,我不得不從另一個表中檢索一個朋友的名字..並不知道如何用PHP表達它。

我一直在測試,應該是這樣的。下面是代碼:

SELECT nombre FROM users 
JOIN friends WHERE (id=usuari_o OR id=usuari_t) AND 
(usuari_t='$id' OR usuari_o='$id') 

FRIENDS TABLES結構:

enter image description here

users表結構:

enter image description here

+0

這兩個表格之間的公共列是什麼? id和usuari_o? – Jester

+0

你能提供樣本表結構和數據嗎? –

+0

usuari_o和usuari_t ARE ID的列 –

回答

0

事情是這樣的:

SELECT original.nombre as original_nombre, friends.usuari_o, target.nombre as target_nobmre, friends.usuari_t 
FROM friends 
LEFT JOIN users AS original ON original.id = friends.usuari_od 
LEFT JOIN users AS target ON target.id = friends.usuari_t; 
0

試試這個 -

SELECT users.nombre FROM users 
LEFT JOIN friends WHERE 
(users.id=friends.usuari_o OR users.id=friends.usuari_t) AND 
(friends.usuari_two='$id' OR friends.usuari_one='$id') 
+0

非常感謝,但它對我不起作用:( –

+0

usuari_two,usuari_one列在哪個表中?它不在朋友表中coz朋友表中有列usuari_o&usuari_t –

+0

仍然沒有得到您的要求 –