我正在尝试为我的网站建立一个朋友系统,它的设置如下:
User's Table:
id
name
Friendship Table:
member1
member2
所以我想要的是当我有这样的值时(member1是用户的id而member2是朋友的id:
member1 - member2
1 2
1 3
1 5
我希望能够获得所有用户(示例中的id为1)朋友的ID。但是当我在PHP中使用mysql_fetch_assoc时,我只得到一个member2 id。所以即使member1在他的朋友列表中有id 2,3和5,我也只能得到他朋友的一个ID。有没有办法解决这个问题,以便我可以得到他朋友的所有ID? 感谢
答案 0 :(得分:1)
正如任何体面的PHP数据库教程所示,请在循环中调用mysql_fetch_assoc()
,直到它返回false
。
答案 1 :(得分:0)
如果Web服务器上的处理不是MySQL服务器带宽的瓶颈,请使用
SELECT GROUP_CONCAT(member2) FROM Friendship where member1=...
然后
$ids=explode(',',$resultfield)
PHP中的
答案 2 :(得分:0)
假设你想得到友谊表。该表有列:member1和member2。要获取基于member1的member2值,
<?php
$q1 = mysql_query("SELECT * FROM user_table");
while($r1 = mysql_fetch_assoc($q1))
{
$q2 = mysql_query("SELECT * FROM friendship_table WHERE member1='".$r1['id']."'");
while($r2 = mysql_fetch_assoc($q2))
{
echo $r2['member2'];
}
}
?>
或使用sql join语句。
<?php
$q = mysql_query("SELECT * FROM user_table JOIN friendship_table WHERE user_table.id=friendship_table.member1");
while($r = mysql_fetch_assoc($q))
{
echo $r['member2'];
}
?>