Как выводить рейтинг пользователей в laravel? [закрыт]

96
25 марта 2021, 20:20
Закрыт. Данный вопрос необходимо конкретизировать. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.

Закрыт 1 год назад.

Улучшить вопрос

Всем привет! Нужно на отдельной странице выводить топ 50 пользователей за месяц, за все время. Как в отдельной категории, так и за все категории. А теперь подробнее. Сайт еще в стадии разработки, для меня это первый проект на laravel. Поэтому прошу помощи у пользователей Stack Overflow, не обязательно кодом, можно и просто расписать логику. Я даже представить себе не могу как реализовать эту функцию. У каждого пользователя(table users) есть свои новости(table news), которые он ежедневно добавляет. После проверки администрацией каждой новости присваивается в поле status число. Если 1, то пользователю дается рейтинг +50. Если 2, то -30. Если 3, то не изменяется рейтинг. Нужно выводить топ пользователей за месяц и за все время, в каждой категории(table categories) и во всех категориях вместе. Как правильно осуществить этот рейтинг? Помогите с логикой рейтинга. А если еще и код подкинете, буду безмерно благодарен.

Answer 1

Для того чтобы выводить топ по рейтингу, необходимо будет делать запрос вида

select sum(u.rate) as rate from users as u
join news as n on u.id = n.user_id
join categories as c on c.id = n.category_id 
group by c.id <-- для учета категорий, для общего рейтинга просто выпилить эту строку
order by u.rate desc

Как выше сказали, надо добавить колонку rate в таблицу users

Answer 2
  • Вы пытаетесь одним вопросом решить сложную задачу.
  • Для начало, я бы, добавил в таблицу users поле рейтинг, и обновлял бы его, а уж вывести топ 10, 50, 100 не будет проблемой.
  • Создал бы таблицу с параметрами рейтинга (какое количество баллов добавляется за то или иное действие)
  • А далее в любых написанных вами методах, увеличивайте или уменьшайте рейтинг.
READ ALSO
Ошибка &ldquo;Invalid utf8 character string&rdquo; при записи бинарных данных в таблицу в MySQL

Ошибка “Invalid utf8 character string” при записи бинарных данных в таблицу в MySQL

При попытке записи в таблицу MySQL файлаpng (пробовал для поля ставить blob и binary) - выдает ошибку:

100
PhpSpreadsheet записать не считывая в память?

PhpSpreadsheet записать не считывая в память?

Использую либу "phpoffice/phpspreadsheet": "^15"

99
Вызов runnable в таймере

Вызов runnable в таймере

Есть ли проблема в этом коде:

105