Помощь - Поиск - Пользователи - Календарь
Полная версия: Запрос В Базу Для Вывода Положения Результата
Форум Php-Nuke > Форумы разработчиков > Вопросы по MySQL
Alexander-V-Sh
Прошу прощения за невнятный вопрос (даже незнаю как тему назвать.... ), но обьяснить сложно, попробую на примере кода и на словах.

Есть викторина, в которой участник набирает какое то количество балов и попадает в таблицу. Затем выводятся результаты, сортируясь по кол-ву балов (order by result). А нумерация идет через i++.
А как можно показать какое место занял участник?

Теперь через код попробую:

Имеется переменная $reiting (число)

Имеется база данных:

CREATE TABLE `result` (
`id` int(11) NOT NULL auto_increment,
`user` text NOT NULL,
`reiting` text NOT NULL,
PRIMARY KEY (`id`)
) ;

INSERT INTO `result` VALUES (1, '5766', 'Вася', '');
INSERT INTO `result` VALUES (2, '678', 'Петя', '');
INSERT INTO `result` VALUES (3, '421', 'Маша', '');
INSERT INTO `result` VALUES (4, '674', 'Даша', '');
INSERT INTO `result` VALUES (5, '3246', 'ккк', '');
INSERT INTO `result` VALUES (6, '4332', '556вик', '');
INSERT INTO `result` VALUES (7, '788', 'трушкин', '');

Мы имеем результат 761

Можно ли запросом в базу узнать, какое место будет занимать этот результат, если сортировать с самого лучшего? 1ое (т.е. лучшее) 2ое, 10ое ?


------
Пока на ум приходит только:
Записать а базу наш результат 761
Запросить в базу все (сортируя по результату) выводить reiting и счетчик i. На том месте где, текущий результат будет равен тому, что записали, в базу - вывести счетчик $i, который и будет местом, например 5.

А проще нельзя?
DreamC
Например запрос WHERE 'reiting' > 761 и перед ним либо COUNT(id) либо mysql_num_rows('идентификатор запроса')
Tulku
Откройте любой блок, где выводится список с нумерацией перед ссылкой и вот вам готовый код. Делается все через тот же i++ только для нумерации вывода результата.
Alexander-V-Sh
DreamC.

Спасиб smile.gif как то не догадася посчитать все через mysql_num_rows, где результат больше или равен нашему результату smile.gif
Это как раз и будет то место, которое занял участник.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2014 Invision Power Services, Inc.