Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php和mysql中显示每个组的成员数_Php_Mysql_List_Group By_Yii2 - Fatal编程技术网

在php和mysql中显示每个组的成员数

在php和mysql中显示每个组的成员数,php,mysql,list,group-by,yii2,Php,Mysql,List,Group By,Yii2,在我的MySql表中,我有由id定义的组,如下所示: 第1组-01 第2组-02 第3组-03 这些小组有以下小组: 01组有子组:011013014 成员是每个子组的一部分。例如,John是011子组的成员 我需要计算每个组(及其子组)的所有成员,并将其显示在组名称旁边,如下所示: <?= Club::find()->where(['like', 'group_id', '01%', false])->count() ?> 第01组:100名成员 第02组:45名成员

在我的MySql表中,我有由id定义的组,如下所示:

第1组-01
第2组-02
第3组-03

这些小组有以下小组:

01组有子组:011013014

成员是每个子组的一部分。例如,John是011子组的成员

我需要计算每个组(及其子组)的所有成员,并将其显示在组名称旁边,如下所示:

<?= Club::find()->where(['like', 'group_id', '01%', false])->count() ?>
第01组:100名成员
第02组:45名成员
第03组:73名成员

我正在使用,html,php,mysql和Yi2PHP框架

使用yii2活动记录,我计算01组的成员,如下所示:

<?= Club::find()->where(['like', 'group_id', '01%', false])->count() ?>
完成此任务的最佳方式是什么?我需要显示包含所有组成员计数的列表。我不认为最好的方法是对页面中的每个组和硬代码运行这个查询


任何帮助,mysql,php,yii2。。。不管怎样?

我不熟悉易建联,但您需要的mysql语句是:

SELECT COUNT(*) 
FROM `club` 
GROUP BY substr(group_id, 1, 2)

我建议尝试运行此代码,看看它是否符合您的要求:

SELECT `group_id`, Count(`group_id`) AS `Count of group_id` FROM `club` GROUP BY `group_id`
希望它能返回一个包含组id的表,每个表都有一个计数

更新-如果group_id列包含011、012等,而不是01、02、03,则使用substr或left函数作为group by参数:

SELECT `group_id`, Count(`group_id`) AS `Count of group_id` FROM `club` GROUP BY Left(`group_id`,2)

您可以选择所有内容并在PHP中执行计数,如

 foreach($results as $result){
     $counts[substr($result['group_id'],0,2)]++;
 }

假设子组的前2位始终是组id。

这将返回计数的关联数组。如何修改此查询以从名为group的相关表中选择组名?group.id=club.group\u id和group table有一个名为“name”的列。另外,如何在html列表中显示此内容?name+count还在挣扎吗?考虑以下简单的两步行动:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。是否有子组表?否,组存储在严格的层次结构中。他们的Id代表了这个层次结构。例如,第一组(父级)的id为01000,该(子组)的子组为:011001001300。。。这些孩子有他们的孩子,例如,孩子01100有孩子:01110,01120。。。