[英]MySQL - Get multiple values for the same column
我正在嘗試為我的網站構建一個朋友系統,它的設置如下:
User's Table:
id
name
Friendship Table:
member1
member2
所以我想要的是當我有這樣的值時(member1是用戶的ID,member2是朋友的ID:
member1 - member2
1 2
1 3
1 5
我希望能夠獲得所有用戶的ID(在示例中為1)。 但是,當我在PHP中使用mysql_fetch_assoc時,我僅獲得member2 id之一。 因此,即使member1在他的朋友列表中具有ID 2、3和5,我也只能獲得他朋友的ID之一。 有什么辦法可以解決此問題,以便我可以獲取他朋友的所有ID? 謝謝
正如任何不錯的PHP數據庫教程將顯示的那樣,循環調用mysql_fetch_assoc()
直到返回false
為止。
如果Web服務器上的處理比MySQL服務器的帶寬少瓶頸,請使用
SELECT GROUP_CONCAT(member2) FROM Friendship where member1=...
接着
$ids=explode(',',$resultfield)
在PHP中
假設您要獲得友誼表。 該表具有列: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'];
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.