Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
1
MySQL

Выборка списка пользователей

06.06.2017, 09:58. Показов 1535. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Решил сделать просмотр последних 15 проголосовавших за пользователя юзеров.
Но не все так просто. Есть таблица votes, но туда заносится не один голос конкретно за пользователя, а заносятся голоса за каждый комментарий пользователя в зависмости от этого голоса, меняется его рейтинг.
Так вот задача, как вывести последние 15 проголосовавших пользователей, а не последние 15 записей из БД.
Делал так:
PHP
1
 $comquote_sql = $sql->run("select user_id,votes,date_format(dateAdd,'%d %b %Y %H:%i:%s') as dateAdd from ".MY_PREFIX."_votes where toUserID = ? order by id DESC limit 15",array($_REQUEST['id']));
Но при таком запросе естественно что если один и тот же пользователь проголосовал подряд за 15 камментов, то его записи и будут последними и только он и попадет в этот список.
Хотел использовать GROUP BY user_id, но при таком запросе, он выводит разных пользователей, но записи не отсортированы по id.
Короче запутался и прошу помочь знатоков.

Структура таблицы
SQL
1
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS `votes` (
`id` INT(11) NOT NULL,
  `id_com` INT(11) NOT NULL, - Идентификатор комментария, за который проголосовали
  `news_id` INT(11) NOT NULL, -Идентификатор новости в которой расположен комментарий
  `user_id` INT(11) NOT NULL, - Идентификатор пользователя, который голосовал
  `toUserID` INT(11) NOT NULL, - Идентификатор пользователя, за которого голосовали
  `votes` VARCHAR(1) NOT NULL, - Голос(положительный или отрицательный)
  `dateAdd` datetime NOT NULL  - дата голоса
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Еще раз задача: Получить список 15 последних человек(user_id) проголосовавших за пользователя(toUserID) с возможностью получить значение голоса(votes)

Добавлено через 8 минут
Вроде бы получилось сделать таким запросом
SQL
1
$comquote_sql = $sql->run("select MAX(id) AS flag,user_id,votes from ".MY_PREFIX."_votes where toUserID = ? GROUP BY user_id order by flag DESC limit 15",array($_REQUEST['id']));
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2017, 09:58
Ответы с готовыми решениями:

Выборка из бд одного поля всех пользователей
Добрый вечер есть база Структура таблицы `users` # CREATE TABLE `users` ( `id` int(11) NOT...

Выборка 5 первых пользователей
Есть 2 таблицы А и Б А: id user_from_id Б: user_id user_login

Выборка пользователей со сложным условием
Задача: Нужно составить запрос так чтобы выводил всех пользователей сайта кроме тех, что есть в...

Формирование списка + выборка из этого же списка
Сформировать список, состоящий из 5-10 записей в соответствии с вариантом задания: Список личной...

1
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
22.05.2018, 15:08  [ТС] 2
Помогите пожалуйста решить проблему с этим вопросом... как оказалось в дальнейшем, то не совсем корректно все это дело работает.

MAX(id) AS flag вернет в flag максимальный идентификатор для запроса. НО!
Данные запрашиваемы в запросе, например votes в итоге выводятся не для flag, а для id - если его в запросе указать, то видно что он не соответствует flag
Как правильно сделать подобный запрос?
0
22.05.2018, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2018, 15:08
Помогаю со студенческими работами здесь

Выборка из списка
Голова в конце дня вообще не работает :cry: Есть список объектов A, A, A, A, A, A, A Как получить...

Выборка из списка
3) Даны два списка чисел одинаковой длины n: 1)произволпый числовой описок: 2) некоторая...

Выборка из списка
Всем добрый день.Имеется список из 500 человек; столбцы со следующими названиями: ФИО, адрес...

Выборка из списка
Доброго времени суток! Возможно ли сделать выборку из списка, относительно значения из другого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru