微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-连接表的foreach循环

我正在尝试在循环内列出用户,但我想将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 举报,一经查实,本站将立刻删除。

相关推荐