2011-02-03 8 views
0

私は、PHPで生成されたテーブルに表示されるユーザーの仲間を持つソーシャルネットワーキングサイトを作っています。これらのサムネイルの下にpalのサムネイルやその他の情報を表示して、サムネイルをクリックするとそのユーザーのプロフィールに移動します。pal(friend)情報を取得するためのPHPクエリとpal情報へのリンク付きのサムネイルを一覧表示する

ユーザーのユーザーのテーブルには、フィールドが含まれています。

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は、(「1」=ステータスとして示される)

user1_idで、彼らは友情を確認しているため、ユーザ95との仲間であります仲間は、友情の創始者のユーザー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&nbsp;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']}"; 

私は現在、それを持っているとして、それはユーザー95であるユーザー92の唯一の友人を示しこれは、92が開始剤であり、95が受容体であったためにのみ作用する。クエリがユーザ92(自身)を彼の仲間として返すので、95がイニシエータであった場合、クエリは機能しません。

正しいクエリは何ですか?事前

+0

のための彼らのサムネイルがあなたがソーシャルネットワーキングサイトを作成する上で計画している場合、MVCフレームワークを使用することがありますすべてのpalsandを与える必要があります。手続き型プログラミング+ソーシャルネットワーキングサイト=災害。 – xil3

+0

ヘッドアップxil3に感謝します。残念ながら、私は今それについて知らないし、それを使う方法も知らない。とにかく、私はそれについて研究します。あなたは私に短い利点を与えることができますか、1,2文をお願いします –

答えて

0
SELECT * FROM users u 
INNER JOIN pal p 
ON p.user1_id = u.user_id 
INNER JOIN pictures pi 
ON pi.user_id = p.user2_id 
WHERE u.user_id = 92 

で任意の助けてくれてありがとう。これはあなたのユーザーID 92

+0

ありがとう、Karthik。それをテストして、それがどうなるか教えてください。 –

+0

「コード」-------------------------- $ query_pal_info = "SELECT *から、ユーザーのINNER JOINの仲間は仲間になります。 user1_id = users.user_id INNER JOIN画像ON picture.user_id = pals.user2_id \t where users.user_id = '$ user_id' "; 'コード'。私が得ているのは、ユーザーID 95と98のすべての画像で、合計95で5、98で3です。 –

+0

SELECT u1。*、pi。* FROM users u INNER JOIN pal p ON p.user1_id = u。 USER_ID INNER JOINをユーザU1 ON u1.user_id = p.user2_id INNERがpi.user_idに絵のパイ を登録しよう= p.user2_id WHERE u.user_id = 92 これを試してみてください.... – Karthik

関連する問題