不過我的包裹圍繞SQL和PHP的頭,但希望有人能夠幫助這一點:PHP和MySQL多到許多問題
我有以下表格:
1.
user table
- id
- name
- email
2.
user_group table
- user_id
- group_id
3.
group table
- id
- group_name
用戶表和組表之間存在多對多的關係。現在我所要做的建立瀏覽用戶頁面,其中列出了系統中所有的用戶,他們屬於羣體一起,所以頁面看起來是這樣的:
Name: John Doe
Groups: football, tennis, swimming
Name: Jane Doe
Groups: hockey, basketball
Name: Jim Doe
Groups: hockey, football, rugby
等等,等等
要做到這一點,我有以下SQL:
SELECT `user`.name, `group`.name
FROM `user`, `user_group`, `group`
WHERE `user`.id = `user_group`.user_id
AND `group`.id = `user_group`.group_id
GROUP BY `user`.id, `group`.id
如下返回結果:
1. John Doe | football
2. John Doe | tennis
3. John Doe | swimming
4. Jane Doe | hockey
5. Jane Doe | basketball
etc. etc.
正如您所看到的,返回的結果需要進行處理以產生前面顯示的以逗號分隔的組。
是否有一種簡單的方法讓頁面顯示組,使它們在MySQL中的每個用戶都以逗號分隔的列表中?或者是否必須編寫PHP代碼來循環查找重複ID並在頁面上生成以逗號分隔的組列表的結果?或者我在做我的做法完全錯誤的東西?
非常感謝。
我不能想辦法做到這一點在一個查詢atm,但我會首先獲取所有用戶的列表,然後遍歷該列表選擇group.name WHERE user.name = $ username – rcapote 2011-05-30 08:20:53