Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 1 год назад.
Всем привет! Нужно на отдельной странице выводить топ 50 пользователей за месяц, за все время. Как в отдельной категории, так и за все категории.
А теперь подробнее.
Сайт еще в стадии разработки, для меня это первый проект на laravel
. Поэтому прошу помощи у пользователей Stack Overflow
, не обязательно кодом, можно и просто расписать логику. Я даже представить себе не могу как реализовать эту функцию.
У каждого пользователя(table users
) есть свои новости(table news
), которые он ежедневно добавляет. После проверки администрацией каждой новости присваивается в поле status число. Если 1, то пользователю дается рейтинг +50
. Если 2, то -30
. Если 3, то не изменяется рейтинг.
Нужно выводить топ пользователей за месяц и за все время, в каждой категории(table categories
) и во всех категориях вместе.
Как правильно осуществить этот рейтинг? Помогите с логикой рейтинга. А если еще и код подкинете, буду безмерно благодарен.
Для того чтобы выводить топ по рейтингу, необходимо будет делать запрос вида
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
users
поле рейтинг, и обновлял бы его, а уж вывести топ 10, 50, 100
не будет проблемой.Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
При попытке записи в таблицу MySQL файлаpng (пробовал для поля ставить blob и binary) - выдает ошибку: