Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 按计数排序未正确排序记录?_Php_Mysql_Database - Fatal编程技术网

Php 按计数排序未正确排序记录?

Php 按计数排序未正确排序记录?,php,mysql,database,Php,Mysql,Database,我正在使用MySQL。我有两张桌子我附上了两张桌子的图片?当我应用ORDER by Count时,查询从数据库检索结果,但没有正确排序,我不知道我做错了什么?我在stack overflow中搜索了一些类似的问题,但仍然面临相同的问题。 我试过这些,但没有成功 $sql = "Select * from gr_groups"; $result = $db->select($sql); for($j = 0; $j < count($result);

我正在使用MySQL。我有两张桌子我附上了两张桌子的图片?当我应用ORDER by Count时,查询从数据库检索结果,但没有正确排序,我不知道我做错了什么?我在stack overflow中搜索了一些类似的问题,但仍然面临相同的问题。

我试过这些,但没有成功

    $sql    = "Select * from gr_groups";
    $result = $db->select($sql);
    for($j = 0; $j < count($result); $j++)
    {
        $mygrp_id = $result[$j]['id'];

        $query       = "Select * from gr_group_memberships where group_id =".$mygrp_id." ORDER BY COUNT(receiver_id) DESC";
        $exec_query  = $db->select($query);
        echo $exec_query[0]['group_id'];
    }
$sql=“从gr_组中选择*”;
$result=$db->select($sql);
对于($j=0;$jselect($query);
echo$exec_query[0]['group_id'];
}
提前谢谢?

仅限

ORDER BY receiver_id DESC 
这将解决问题

更新

试着加入他们-

SELECT * FROM gr_groups g 
LEFT JOIN gr_group_memberships gm on gm.group_id = g.id
ORDER BY COUNT(gm.receiver_id) DESC
这将获取所有成员资格按计数排序的组。

请尝试以下操作

$query = "Select * from gr_group_memberships where group_id = ".$mygrp_id." ORDER BY receiver_id DESC";

您可以按顺序点菜,但这样会更好

 SELECT *,count(receiver_id) as total_receivers 
  FROM gr_group_memberships 
  WHERE group_id =".$mygrp_id." 
  GROUP BY receiver_id
  ORDER BY receiver_id DESC;
请尝试以下查询:

$query = "Select a.* from gr_group_memberships a 
          join( select receiver_id,count(receiver_id) as count1
          from  gr_group_memberships group by receiver_id) b on
          a.receiver_id=b.receiver_id  where a.group_id =".$mygrp_id."
          ORDER BY count1 DESC";
试试这个

SELECT count(receiver_id) as total_receiver FROM gr_group_memberships
INNER JOIN gr_group on gr_group_memberships.group_id = gr_group.id
GROUP BY gr_group_memberships.receiver_id
ORDER BY gr_group_memberships.receiver_id DESC

我想它会起到你想要的作用

@b0s3我必须命令在顶部有更多成员的组,出于这个原因,我正在计算成员的数量,然后根据您想要的
gr_group_memberships
组进行排序,以首先显示具有最高
receiver_id
的行?是的,假设在gr_group_成员身份中,一个组有5个receiver_id,另一个组有4个,那么我希望5个位于顶部?Ohk。那么您就错了。@b0s3正确的方法是什么?只取最高的一个而不是另一个?最高的一个而不是其他??五个组,id为25的组有三个成员,第二个组有两个成员,其余三个组各有一个成员。我想安排的是这个订单,25,22,24,21…那么你现在得到了什么?我只有25个,拥有最多的会员。你可以通过接收者来尝试这个订单。我厌倦了这个,所以我的大脑停止工作了?当我直接将这个查询粘贴到sql查询窗口时,它工作了,但当我将它集成到php代码时,它不工作?当我们打印total_receiver时,它给出了3,1,1,这是正确的,但是当我们打印group_id时,它给出了25,25,25。你能将它集成到我的php代码中吗?因为我们按
receiver_id
数一数。但是
receiver\u id
不等于
group\u id
。这就是为什么“group_id”没有正确显示的原因:(让我们看看。