Php 联接表的foreach循环
我试图在一个循环中列出用户,但我希望将城市名称保留在循环之外。我需要另一个查询或if语句吗 我想要的结果是: 伦敦用户: 詹姆斯,鲍勃 纽约用户: 大卫Php 联接表的foreach循环,php,mysql,Php,Mysql,我试图在一个循环中列出用户,但我希望将城市名称保留在循环之外。我需要另一个查询或if语句吗 我想要的结果是: 伦敦用户: 詹姆斯,鲍勃 纽约用户: 大卫 用户表 ==================== id用户\名称用户\城市\ id用户\类型 海伦2娜 2詹姆士1高级 3.1正常 4鲍勃1正常 城市表 ============= 城市标识城市名称城市状态 1伦敦1 2纽约1 3巴黎0 如果您想按城市列出用户,您需要切换您的加入,或者您需要在应用程序级别重新构造您的数据,这从来都不是好的,但有
用户表
====================
id用户\名称用户\城市\ id用户\类型
海伦2娜
2詹姆士1高级
3.1正常
4鲍勃1正常
城市表
=============
城市标识城市名称城市状态
1伦敦1
2纽约1
3巴黎0
如果您想按城市列出用户,您需要切换您的加入,或者您需要在应用程序级别重新构造您的数据,这从来都不是好的,但有时是必要的
您的示例有很多问题,但是要实现您的目标,请将SQL更改为
SELECT *
FROM cities
JOIN users
ON cities.city_id = users.user_city_id
WHERE city_status = '1'
AND user_type IN ('NORMAL','PREMIUM')
然后
使用者
您可以通过SQL查询来完成
SELECT cities.city_name, GROUP_CONCAT(users.user_name) AS names
FROM users INNER JOIN cities ON cities.city_id = users.user_city_id
WHERE city_status = '1' AND user_type IN ('NORMAL','PREMIUM')
GROUP BY cities.city_id
在PHP中
foreach($getcities as $row) {
echo $row->city_name . ": " . $row->names;
}
在foreachPerfect之前,$行中的内容是什么!非常感谢!:)如果我需要回显用户表中的另一行怎么办?有办法按城市对用户进行分组吗?我试过按城市名称分组,但只显示了2个records@BlueCat这正是我向你们展示的方法。
SELECT cities.city_name, GROUP_CONCAT(users.user_name) AS names
FROM users INNER JOIN cities ON cities.city_id = users.user_city_id
WHERE city_status = '1' AND user_type IN ('NORMAL','PREMIUM')
GROUP BY cities.city_id
foreach($getcities as $row) {
echo $row->city_name . ": " . $row->names;
}