我正在尝试在循环内列出用户,但我想将city_name保留在循环外.我是否需要另一个查询或if语句?
结果我到底想要什么:
伦敦用户:
鲍勃·詹姆斯
纽约用户:
大卫
users table
====================
id user_name user_city_id user_type
1 Helen 2 NA
2 James 1 PREMIUM
3 David 1 norMAL
4 Bob 1 norMAL
cities table
=============
city_id city_name city_status
1 London 1
2 New York 1
3 Paris 0
<?PHP
$getcities = $db->get_rows("
SELECT *
FROM users
JOIN cities
ON cities.city_id = users.user_city_id
WHERE city_status = '1'
AND user_type IN ('norMAL','PREMIUM')
");
?>
<h1><?PHP echo $row->city_name ?> USERS</h1>
<?PHP
foreach($getcities as $row) {
?>
<h2><?PHP echo $row->user_name ?></h2>
<?PHP
}
?>
解决方法:
您可以使用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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。