我正在一個社交網站,我想要一個用戶的朋友顯示在PHP生成的表。我想在這些縮略圖下方顯示朋友縮略圖和其他信息,這樣如果您單擊縮略圖,它會將您帶到該用戶的個人資料。PHP查詢檢索朋友信息和列表縮略圖鏈接到朋友信息
我的用戶表包含字段,例如
user_id, username, user_first_name, user_last_name...etc
我有一個好朋友表:(user1_id,user2_id是PK USER_ID的FK在用戶表)
pal_id user1_id user2_id status timestamp
6 92 95 1 2011-02-02 21:44:58
7 98 97 0 2011-02-02 21:44:28
8 92 98 0 2011-02-02 21:44:28
圖片其中化身供顯示檢索表。如果化身=「1」,即用戶化身:
picture_id picture_url picture_thumb_url user_id avatar timestamp
73 ../User_Images/66983.jpg ../User_Images/Thumbs/66983.jpg 92 1 2011-02-01 21:41:59
74 ../User_Images/56012.jpg ../User_Images/Thumbs/56012.jpg 94 0 2011-01-25 12:09:58
從上面,用戶92與用戶95,因爲他們已經證實友誼帕爾斯(示出爲狀態=「1」)
user1_id在好友獲得友誼的發起者的用戶ID。對於pal_id = 6,用戶92請求友誼,95確認它。如果用戶95請求友誼,並已確認,user2_id將讀取92 ...
現在,我將如何顯示我的PHP查詢以顯示朋友縮略圖和信息?
我的PHP代碼:
<?php require_once('Connections/connections.php'); ?>
<?php
//query username
$user_id = $_SESSION['UserSession'];
$user_id = mysql_real_escape_string($user_id);
$query_user_info = "SELECT username FROM users WHERE user_id='$user_id'";
$user_info = mysql_query($query_user_info, $connections) or die(mysql_error());
$row_user_info = mysql_fetch_assoc($user_info);
//code for displaying all your pals
$query_pal_no = "SELECT * FROM pals WHERE (user1_id='$user_id' AND status='1') OR (user2_id='$user_id' AND status='1')";
$pal_no_result = mysql_query($query_pal_no, $connections) or die(mysql_error());
$row_pal_no = mysql_num_rows($pal_no_result);
while ($pal_no = mysql_fetch_assoc($pal_no_result))
{
//get pal info
$query_pal_info = "SELECT users.user_id, user_first_name, user_last_name, username, picture_thumb_url, avatar FROM users LEFT JOIN picture ON
users.user_id = picture.user_id
AND picture.avatar=1 WHERE users.user_id = {$pal_no['user2_id']}";
$pal_info = mysql_query($query_pal_info , $connections) or die(mysql_error());
$totalRows_pal_info = mysql_num_rows($pal_info);
//echo table with pal information
echo "\n<table>";
$j = 5;
while ($row_pal_info = mysql_fetch_assoc($pal_info))
{
if($j==5) echo "\n\t<tr>";
$thumbnail_user = $row_pal_info['picture_thumb_url'] != '' ? $row_pal_info['picture_thumb_url'] : '../Style/Images/default_avatar.png';
echo "<td width='100' height='100' align='center' valign='middle'><a href = 'user_view.php?user_id2={$row_pal_info['user_id']}'>
<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>";
}
?>
<table width="500" border="0">
<tr>
<td height="20"><div class="heading_text_18"><?php echo $row_user_info ['username']; ?>'s pals <?php echo $row_pal_no ?></div> </td>
</tr>
<tr>
<td class="interactionLinksDiv" align="right" style="border:none;"><a href="#" onclick="return false"
onmousedown="javascript: toggleInteractContainers('pal_requests');">Pal Requests</a></td>
</tr>
<tr>
<td height="5"></td>
</tr>
</table>
我知道問題出在查詢中的WHERE後:
$query_pal_info = "SELECT users.user_id, user_first_name, user_last_name, username, picture_thumb_url, avatar FROM users LEFT JOIN picture ON
users.user_id = picture.user_id
AND picture.avatar=1 WHERE users.user_id = {$pal_no['user2_id']}";
正如我現在有它,它顯示了用戶92的唯一的朋友是誰的用戶95這僅僅是因爲92是發起者和95接受者。如果95是發起者,查詢將不起作用,因爲查詢將返回用戶92(他自己)作爲他的朋友。
什麼是正確的查詢?感謝您的幫助提前
縮略圖,您可能需要使用一個MVC框架,如果你打算創建一個社交網站的palsand。程序性編程+社交網站=災難。 – xil3 2011-02-03 10:24:40
感謝xil3的領導。不幸的是,我現在不知道它,也不知道如何使用它。無論如何,我會研究它。你能給我短暫的優勢,請給我1或2句話 – 2011-02-03 11:53:01