You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何分别统计并显示注册管理员与用户的数量?

解决分别统计管理员和用户数量的问题

嘿,我明白你的需求啦!你原来的代码之所以统计的是总人数,是因为你的SQL查询没有对usertypes字段做筛选,直接拉取了所有用户的id。下面给你两种靠谱的修改方案,按需选用:

方案1:分别查询管理员和用户数量(简单直观)

这种方法逻辑清晰,容易理解,针对两种用户类型各写一条SQL查询即可:

<?php
// 统计管理员数量
$admin_query = "SELECT id FROM register WHERE usertypes = 'admin'";
$admin_query_run = mysqli_query($connection, $admin_query);
$admin_count = mysqli_num_rows($admin_query_run);

// 统计普通用户数量
$user_query = "SELECT id FROM register WHERE usertypes = 'user'";
$user_query_run = mysqli_query($connection, $user_query);
$user_count = mysqli_num_rows($user_query_run);

// 输出结果
echo '<h4> Total Admin: '.$admin_count.'</h4>';
echo '<h4> Total User: '.$user_count.'</h4>';
?>

方案2:一次查询获取两种数量(更高效)

如果想减少数据库查询次数、提升性能,可以用COUNT()聚合函数配合GROUP BY,一次查询就能拿到两种用户类型的统计结果:

<?php
$query = "SELECT usertypes, COUNT(*) as count FROM register GROUP BY usertypes";
$query_run = mysqli_query($connection, $query);

// 初始化两个计数变量
$admin_count = 0;
$user_count = 0;

// 遍历查询结果,给对应变量赋值
while ($row = mysqli_fetch_assoc($query_run)) {
    if ($row['usertypes'] == 'admin') {
        $admin_count = $row['count'];
    } elseif ($row['usertypes'] == 'user') {
        $user_count = $row['count'];
    }
}

// 输出结果
echo '<h4> Total Admin: '.$admin_count.'</h4>';
echo '<h4> Total User: '.$user_count.'</h4>';
?>

小提示

  • 记得确保你的数据库连接$connection是正常可用的哦
  • 如果usertypes字段的值可能有大小写差异(比如Admin或USER),可以在SQL里用LOWER(usertypes) = 'admin'来统一匹配

内容的提问来源于stack exchange,提问作者Satinder Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:32:32