За последние 24 часа нас посетили 18726 программистов и 1703 робота. Сейчас ищут 609 программистов ...

Как сделать рейтинг записей

Тема в разделе "PHP и базы данных", создана пользователем viphost, 7 июл 2011.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Всем привет у меня вопрос как сделать рейтинг записей
    Есть таблица назовем ее TABLE в ней 6 полей, интересует только одно:
    Человек добавляет материал и к одно из полей записывается его ID, которое он получил при регистрации, например поле назовем id_user
    Получается что нужно подсчитать сколько юзер с id_user запостил новостей и если их скажем 10 то выводим его в ТОП
    Далее если следующий юзер запостил 9 то он второй в рейтинге и т.д.
    Как это можно сделать?
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    SELECT users.*, COUNT(id) AS posts FROM users LEFT JOIN table ON users.id = table.id_user ORDER BY posts DESC
     
  3. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Что то я не понял как тут все, можете разжевать
    Table - таблица
    id и id_user - поля
    id - id созданного поля
    id_uder - юзер которому принадлежит пост

    У меня ничего не получается (
     
  4. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    может есть какой-нибудь текст ошибок? что не получается?

    и старайтесь не называть поля зарезервированными именами table, view, date и т.п.
     
  5. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    да я просто не пойму что к чему запросе
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    что непонятного? Запрос пробовали выполнять?

    Только надо свои имена полей и таблиц подставить, вы ж тут структуру не приводите.

    Запрос выведет всё из таблицы users и количество постов из table, привязанных к юзеру. И еще отсортировано по количеству.
     
  7. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    все понял, разобрался, но он выводит только одного юзера
    Я пищу так
    [sql]"SELECT all_users.*, COUNT(id_user) AS id_user FROM all_users LEFT JOIN posts_users ON all_users.id = posts_users.id_user ORDER BY id_user DESC limit 10"; [/sql]
    и выводит только одного юзера
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    "SELECT all_users.*, COUNT(posts_users.id) AS user_posts FROM all_users LEFT JOIN posts_users ON all_users.id = posts_users.id_user ORDER BY user_posts DESC limit 10"