Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сигнализатор юзера, который онлайн
 
 автор: Sarat   (12.11.2009 в 03:23)   письмо автору
 
 

Здравствуйте! Посмотрел скрипт на этом сайте 'список пользователей онлайн', сделал, список выводится. А как сделать чтобы в моем списке всех зарегестрированных пользователей подсвечивался зарегестрированный юзер, если он сейчас на сайте? Вся информация о зарег юзерах у меня хранится в таблице users и из таблицы session (в которую заносятся имена юзеров онлайн) совпадения только по никам.
Помогите пожалуйста!

  Ответить  
 
 автор: Trianon   (12.11.2009 в 08:30)   письмо автору
 
   для: Sarat   (12.11.2009 в 03:23)
 

> и из таблицы session (в которую заносятся имена юзеров онлайн) совпадения только по никам.
В таблице session разумнее хранитть ключ к таблице users.
Тогда запрос списка зарегистрированных пользователей будет выглядеть как-то так:

SELECT users.*, (session.user_id IS NOT NULL) AS online
   FROM users LEFT JOIN session ON users.id = session.user_id

  Ответить  
 
 автор: Sarat   (12.11.2009 в 12:47)   письмо автору
 
   для: Trianon   (12.11.2009 в 08:30)
 

а как сделать этот ключ в таблице session? Или ключ не делается и всё решается этим запросом?

  Ответить  
 
 автор: Trianon   (12.11.2009 в 13:06)   письмо автору
 
   для: Sarat   (12.11.2009 в 12:47)
 

Добавить поле user_id
Убрать поле user
Соответствующим образом изменить скрипт.

  Ответить  
 
 автор: Sarat   (12.11.2009 в 22:04)   письмо автору
 
   для: Trianon   (12.11.2009 в 08:30)
 

Ключ сделал, в таблицу session записывается тот же номер user_id что и в таблице uses поле id. Запрос что вы написали :
(SELECT users.*, (session.user_id IS NOT NULL) AS online
FROM users LEFT JOIN session ON users.id = session.user_id) подойдет? А что он значит?
(ВЫТАЩИТЬ из таблицы юзерс все поля(...)...) а дальше как переводится? Дело в том что я первый раз встречаюсь с такими запросами. А может быть в моей ситуации подойдет более простой запрос?

  Ответить  
 
 автор: Trianon   (12.11.2009 в 22:16)   письмо автору
 
   для: Sarat   (12.11.2009 в 22:04)
 

ВЫТАЩИТЬ из таблицы юзерс все поля, и кроме того выдать поле online равно 0 , если в таблице sessions не нашлось подходящей строки. И равно 1 , если нашлась.

Если user_id уникальное поле в таблице sessions - всё вполне будет работать.

  Ответить  
 
 автор: Sarat   (13.11.2009 в 08:28)   письмо автору
 
   для: Trianon   (12.11.2009 в 22:16)
 

Спасибо! Всё подошло, работает единственное пришлось создать поле online в таблице users.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования