我有这3个表:PHP如何查询从3个表需要的信息在一个select语句
用户表(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
图象表(从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 92 0 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”)
user1_id在帕尔斯得到友谊的发起者的用户ID。对于pal_id = 8,用户92请求友谊,95确认它。如果用户95请求了友谊并且已经确认,则user2_id将会读取92.用户92具有另一个朋友,用户97.97发起友谊。
用户可以有图片,存储在上面的图片表中。用户从他的照片中选择他的头像...这是通过设置他的一个picture.avatar ='1'来完成的。
现在,我将如何让我的PHP查询显示朋友缩略图和信息?
我有这个迄今为止(我想要的结果是路要走!)
<?php require_once('Connections/connections.php'); ?>
<?php
//query username
$user_id = $_SESSION['UserSession'];
$user_id = mysql_real_escape_string($user_id);
mysql_select_db($database_connections, $connections);
$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);
bla bla bla
<?php
while ($pal_no = mysql_fetch_assoc($pal_no_result))
{
//get pal info
$query_pal_info = "SELECT * FROM users INNER JOIN pals ON (pals.user1_id = users.user_id) OR (users.user_id = pals.user2_id)
INNER JOIN picture ON picture.user_id = users.user_id AND picture.avatar = '1' WHERE users.user_id = '$user_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>";
}
?>
泽工业区的问题在这里:
$query_pal_info = "SELECT * FROM users INNER JOIN pals ON (pals.user1_id = users.user_id) OR (users.user_id = pals.user2_id)
INNER JOIN picture ON picture.user_id = users.user_id AND picture.avatar = '1' WHERE users.user_id = '$user_id'";
如何解决呢?先谢谢你们。
如果你仍然有问题,那么你可以给我发送你的数据库导出sql文件 – 2011-02-04 11:10:20
@experimentX。也许我在我的数据库中有多余的信息。你有我可以发送给的电子邮件地址? – 2011-02-04 14:03:21