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

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

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

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

логин

и

id_ref_user

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

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

textual
Листинг программы
  1. $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);
  2.    
  3.    
  4. while($row = mysql_fetch_array($result))
  5. {
  6.     echo $row['login'] . ' => ' . $row['total'] . "<br />";
  7. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут