2011-02-07 14 views
0

我有這3個表選擇信息:PHP查詢到從關於用戶3代表和他的夥伴們

用戶表(PK USER_ID)

Fields: user_id, user_first_name, user_last_name, username, user_email...etc 

好朋友表(FK user1_id,從PK USER_ID user2_id在用戶表)

pal_id user1_id user2_id   status  timestamp 
7   98    97    0  2011-02-02 21:44:28 
8   92    98    1  2011-02-04 08:06:00 
9   95    92    0  2011-02-04 08:05:54 
10   97    92    1  2011-02-04 08:05:28 
11   97    95    1  2011-02-04 08:06:33 
9   92    93    1  2011-02-04 08:05:54 
10   79    92    1  2011-02-04 08:05:28 
11   97    95    1  2011-02-04 08:06:33 

圖象表(從PK USER_ID FK USER_ID在用戶表)

picture_id picture_url    picture_thumb_url    user_id avatar   timestamp 
73  ../User_Images/66983.jpg ../User_Images/Thumbs/66983.jpg  92  0 2011-02-03 21:52:02 
74  ../User_Images/56012.jpg ../User_Images/Thumbs/56012.jpg  93  1 2011-01-25 12:09:58 
75  ../User_Images/58206.jpg ../User_Images/Thumbs/58206.jpg  95  0 2011-01-22 22:12:35 
76  ../User_Images/85428.jpg ../User_Images/Thumbs/85428.jpg  98  0 2011-01-23 23:50:16 
77  ../User_Images/42325.jpg ../User_Images/Thumbs/42325.jpg  98  0 2011-01-24 00:11:15 
78  ../User_Images/73154.jpg ../User_Images/Thumbs/73154.jpg  98  1 2011-01-24 00:11:15 
81  ../User_Images/92865.jpg ../User_Images/Thumbs/92865.jpg  92  0 2011-01-31 18:24:34 
82  ../User_Images/75611.jpg ../User_Images/Thumbs/75611.jpg  92  0 2011-01-26 18:08:52 
83  ../User_Images/74829.jpg ../User_Images/Thumbs/74829.jpg  95  0 2011-02-01 20:48:48 
84  ../User_Images/5987.jpg  ../User_Images/Thumbs/5987.jpg  92  1 2011-02-03 21:52:02 

我想提出一個社交網站,我想有一個PHP生成的表中顯示的用戶的好朋友。我想在這些縮略圖下方顯示朋友縮略圖和其他信息,這樣如果您單擊縮略圖,它會將您帶到該用戶的個人資料。

從上面,用戶92與用戶98的好朋友,因爲他們已經證實友誼(示出爲狀態=「1」)

用戶92具有4個好朋友...他要求2個其它2個用戶發送他請求。

在夥伴是用戶98,97,93和79

看看這樣:(解釋好朋友正如何加入)

'A' 加 'B'

User1將是 'A' 和用戶2將在PA​​L表 'B'

,如果 'B' 添加 'A'

USER1將是 'B' 和user2將 'A' 上PAL表

用戶可以有圖片,存儲在上述圖像表。用戶從他的照片中選擇他的頭像...這是通過設置他的一個picture.avatar ='1'來完成的。

我們的用戶92已經選擇了自己上傳頭像照片。所以有98和93用戶。其他兩個朋友有默認的頭像圖片。 (所有圖像都存儲在文件夾用戶圖像中)。

我的問題。

到目前爲止,e.g,在用戶92的個人資料,我只能檢索有頭像用戶朋友的信息。我如何更改我的代碼,以便能夠獲得具有頭像和那些不會的朋友?

我的PHP代碼:

<?php 
//get pal info 
$query_pal_info1 = "SELECT pals.user2_id AS pals_id1, users.user_first_name AS pals_first_name, users.user_last_name AS pals_last_name, picture.picture_thumb_url AS 
picture, picture.avatar AS avatar FROM pals INNER JOIN (users LEFT JOIN picture ON picture.user_id = users.user_id) ON users.user_id = pals.user2_id WHERE 
pals.user1_id = '$user_id' AND picture.avatar = 1 GROUP BY pals_id1"; 
$pal_info1 = mysql_query($query_pal_info1 , $connections) or die(mysql_error()); 

$query_pal_info2 = "SELECT pals.user1_id AS pals_id1, users.user_first_name AS pals_first_name, users.user_last_name AS pals_last_name, picture.picture_thumb_url AS 
picture, picture.avatar AS avatar FROM pals INNER JOIN (users LEFT JOIN picture ON picture.user_id = users.user_id) ON users.user_id = pals.user1_id WHERE 
pals.user2_id = '$user_id' AND picture.avatar = 1 GROUP BY pals_id1"; 
$pal_info2 = mysql_query($query_pal_info2 , $connections) or die(mysql_error()); 

//echo table with pal information 
echo "\n<table>"; 
$j = 5; 
while (($row_pal_info1 = mysql_fetch_assoc($pal_info1)) && ($row_pal_info2 = mysql_fetch_assoc($pal_info2))) 
{ 
    if($j==5) echo "\n\t<tr>"; 
    $thumbnail_user = $row_pal_info1['picture'] != '' ? $row_pal_info1['picture'] : '../Style/Images/default_avatar.png'; 
    echo "<td width='100' height='100' align='center' valign='middle'><a href = 'user_view.php?user_id2={$row_pal_info1['pals_id1']}'> 
    <img src='/NNL/User_Images/$thumbnail_user' border='0'/></a></td>\n"; 
    $thumbnail_user = $row_pal_info2['picture'] != '' ? $row_pal_info2['picture'] : '../Style/Images/default_avatar.png'; 
    echo "<td width='100' height='100' align='center' valign='middle'><a href = 'user_view.php?user_id2={$row_pal_info2['pals_id1']}'> 
    <img src='/NNL/User_Images/$thumbnail_user' border='0'/></a></td>\n"; 
    $j--; 
    if($j==0) { 
    echo "\n\t</tr>\n\t<tr>"; 
    $j = 5; 
    } 
} 
if($j!=5) echo "\n\t\t<td colspan=\"$j\"></td>\n\t</tr>"; 
echo "\n</table>"; 
?> 

在我的查詢:$ query_pal_info1和$ query_pal_info2,我有... AND picture.avatar = 1,我明白,這只是帶來了我的好朋友有化身。我如何改變這種說法,以便能夠讓所有的好友,有或沒有圖像。任何幫助將不勝感激。

+0

可能重複的[PHP如何在一個select語句中查詢3個表所需的信息](http://stackoverflow.com/questions/4894861/php-how-to-query-information-needed-from-3-表一體式選擇語句) – 2011-02-07 17:27:01

回答

0

從查詢中刪除AND picture.avatar = 1

在未來,它不會傷害到查詢複製到SQL編輯器,玩了一下,看看什麼樣的斷言,你需要刪除,以得到想要的結果。

+0

感謝您的回覆。如果我刪除它,是的,我將能夠說出所有user_92的朋友是4.但是,我將如何能夠獲得他們的頭像 - 對於那些有? – 2011-02-07 18:00:29

相關問題