Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как посчитать
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Как посчитать

Страниц (1): [1]
 

1. Virgin - 22 Декабря, 2009 - 13:17:05 - перейти к сообщению
Добрый день!
Есть таблица бд, где указываются уникальный ID, дата записи строки, и имя записавшего!
Хотел узнать, как вывести записавшему ,ориентируясь на дату и время записи в строке, его место в очереди?? Т.е. выдать какая его запись в таблице по счету(по дате) среди других таких же как он?
2. Вездеход - 22 Декабря, 2009 - 13:26:27 - перейти к сообщению
чтото в стиле такого
select count(*) from tbl where id<(select id from tbl where name='имя_записавшегося' limit 1)
3. Мелкий - 22 Декабря, 2009 - 13:33:49 - перейти к сообщению
select count(*) from `таблица` where дата_записи<дата_записи_этого_пользователя

PS: может что получше ещё предложат.
PPS: долго писал Улыбка
4. Вездеход - 22 Декабря, 2009 - 13:35:42 - перейти к сообщению
зависит от такого какие данные вы можете использовать и как устроена система записи...
что будет если например одно и тоже имя будет 2 раза?

еще можно добавить ORDER BY по полю с датой - чтобы сортировка шла верно, и первыми в списке были явно те, кто раньше записался =)
5. Virgin - 22 Декабря, 2009 - 13:58:00 - перейти к сообщению
Вездеход пишет:
зависит от такого какие данные вы можете использовать и как устроена система записи...
что будет если например одно и тоже имя будет 2 раза?

еще можно добавить ORDER BY по полю с датой - чтобы сортировка шла верно, и первыми в списке были явно те, кто раньше записался =)


Ну предполагается что записываться можно один раз...
(Добавление)
Мелкий пишет:
select count(*) from `таблица` where дата_записи<дата_записи_этого_пользователя

PS: может что получше ещё предложат.
PPS: долго писал Улыбка


Несовсем понятно, дата записи строки -одна колонка
6. Мелкий - 22 Декабря, 2009 - 14:48:46 - перейти к сообщению
Virgin пишет:
Несовсем понятно, дата записи строки -одна колонка

ну, таким вариантом предполагается, что для обратившегося пользователя дата уже получена где-то ранее...
И заодно предполагается, что строки таблицы, прошедшие свою очередь, удаляются.
7. Virgin - 22 Декабря, 2009 - 15:17:52 - перейти к сообщению
попытался сделать чтото типа
Select count(*) as 'c' From ochered where NUMBER<=(Select NUMBER as 'idd' From ochered where user='Вася'), где NUMBER -первичный элемент(auto_increment).
Так вроде работает если последовательность NUMBER не нарушается, т.е если 1,2,3,4,5... Проблема начинается если последовательность нарушается т.е NUMBER=1,2,4,5..

PS На самом деле туфта какая то получается...
8. Вездеход - 22 Декабря, 2009 - 17:38:18 - перейти к сообщению
Virgin
врете... )))
не может это так быть.
если разобрать скрипт то получается что у вас в подзапросе извлекается ID записи. а вот какая последовательность у вас в базе (1,2,3 или 1,5,7) - без разницы. если есть ошибка проверяйте запросы...
и к тому же не нужно в подзапросе делать вот это: NUMBER as 'idd'
банально потому, что подзапрос вернет значение, остальное нам не нужно все равно.

и еще запишите все названия столбцов и таблиц в кавычки. не хорошо без них писать...

SELECT COUNT(*) as 'c' FROM `ochered` WHERE `NUMBER`<=(SELECT `NUMBER` FROM `ochered` WHERE `user`='Вася' LIMIT 1)

и попробуйте проверить сам подзапрос, что он вам вернет?

 

Powered by ExBB FM 1.0 RC1