开发者社区> 问答> 正文

php如何实现分组查询?

有一个user表,表中有两个字段分别是username和city,表中有3条条记录。
screenshot
如果只是查询张三和李四各有多少人,可以通过下面语句查询
screenshot
问:怎样查询在不同城市叫张三和李四的人各有多少个呢?
我希望显示的结果是:
张三 共2人 北京1人 上海1人 ...
李四 共1人 北京1人 上海0人 ...

所以通过通过下面查询是不可行的。这会导致出现重复行,而且也不能统计张三有多少人。
screenshot
我需要的结果是:
screenshot
下面是我的PHP代码,如果单纯一次查询不能实现,那PHP应怎样写呢?

<?php

$db = new MySQLi(DB_HOST, DB_USER, DB_PASSWD, DB_NAME, DB_PORT);

$query = "
SELECT username,  count( * ) 
FROM user
GROUP BY username
")

$result = $db->query($query);

$num_rows = $result->num_rows;
$num_cols = $result->num_fields;

echo '<table>';
for ($i=0;$i<$num_rows;$i++){
    $rows = $result->fetch_assoc();
    echo '<tr>';
    foreach($rows as $cols){
        echo '<td>'.$cols.'</td>';
    }
    echo '</tr>';
}
echo '</table>';        

?>

展开
收起
落地花开啦 2016-06-12 15:21:25 5306 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    先执行
    screenshot
    搜出来的结果(简写):
    screenshot
    假设结果保存在$rs变量里,使用php处理一下:
    screenshot
    当然这是按我自己喜欢的结构存的,你也可以修改成你喜欢的结构。出来的结果如下(简写):
    screenshot

    2019-07-17 19:34:11
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载