Сделать order by count(*) - MySQL

Узнай цену своей работы

Формулировка задачи:

Привет) В общем, запутался в трёх соснах. Куча ответов в гугле, но реально что-то ни один не работает..( Есть таблица:

логин

и

id_ref_user

(id того, кто привёл на сайт (рефовода)) В итоге, нужно посчитать, сколько у каждого человека своих рефералов. Уже вариантов 15 перебрал, например так:
$link = mysql_connect($host,$user,$pass);
mysql_select_db($db,$link);
$result = mysql_query("
    
        SELECT count(id_ref_user) as w, login
    FROM user
        WHERE id_ref_user !='0' //исключаем тех, кто сам пришёл
        GROUP BY login
        ORDER BY w
");
 
while ($row = mysql_fetch_array($result))
{
    echo $row['login'] . '=>' . $row['w'] . "<br />";
}
Но так не получается.. Как сделать правильно? В чём ошибка?

Решение задачи: «Сделать order by count(*)»

textual
Листинг программы
$result = mysql_query("SELECT COUNT(id_ref_user) AS total, login, id_user FROM user WHERE id_ref_user !='0' GROUP BY id_ref_user ORDER BY id_user", $link);
    
    
while($row = mysql_fetch_array($result))
{
    echo $row['login'] . ' => ' . $row['total'] . "<br />";
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5