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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как посчитать

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Virgin
Отправлено: 22 Декабря, 2009 - 13:17:05
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Добрый день!
Есть таблица бд, где указываются уникальный ID, дата записи строки, и имя записавшего!
Хотел узнать, как вывести записавшему ,ориентируясь на дату и время записи в строке, его место в очереди?? Т.е. выдать какая его запись в таблице по счету(по дате) среди других таких же как он?
 
 Top
Вездеход
Отправлено: 22 Декабря, 2009 - 13:26:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




чтото в стиле такого
select count(*) from tbl where id<(select id from tbl where name='имя_записавшегося' limit 1)


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2009 - 13:33:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




select count(*) from `таблица` where дата_записи<дата_записи_этого_пользователя

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

(Отредактировано автором: 22 Декабря, 2009 - 13:34:26)



-----
PostgreSQL DBA
 
 Top
Вездеход
Отправлено: 22 Декабря, 2009 - 13:35:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




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

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


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Virgin
Отправлено: 22 Декабря, 2009 - 13:58:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Вездеход пишет:
зависит от такого какие данные вы можете использовать и как устроена система записи...
что будет если например одно и тоже имя будет 2 раза?

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


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

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


Несовсем понятно, дата записи строки -одна колонка
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2009 - 14:48:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Virgin пишет:
Несовсем понятно, дата записи строки -одна колонка

ну, таким вариантом предполагается, что для обратившегося пользователя дата уже получена где-то ранее...
И заодно предполагается, что строки таблицы, прошедшие свою очередь, удаляются.


-----
PostgreSQL DBA
 
 Top
Virgin
Отправлено: 22 Декабря, 2009 - 15:17:52
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




попытался сделать чтото типа
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 На самом деле туфта какая то получается...
 
 Top
Вездеход
Отправлено: 22 Декабря, 2009 - 17:38:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




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)

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


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB