有一个user表,表中有两个字段分别是username和city,表中有3条条记录。
如果只是查询张三和李四各有多少人,可以通过下面语句查询
问:怎样查询在不同城市叫张三和李四的人各有多少个呢?
我希望显示的结果是:
张三 共2人 北京1人 上海1人 ...
李四 共1人 北京1人 上海0人 ...
所以通过通过下面查询是不可行的。这会导致出现重复行,而且也不能统计张三有多少人。
我需要的结果是:
下面是我的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>';
?>
先执行
搜出来的结果(简写):
假设结果保存在$rs变量里,使用php处理一下:
当然这是按我自己喜欢的结构存的,你也可以修改成你喜欢的结构。出来的结果如下(简写):
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。