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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Онлайн или нет

Сообщения:  [1-10]   [11-15] 

 
 автор: Trianon   (23.12.2006 в 13:20)   письмо автору
 
   для: Dez   (23.12.2006 в 12:56)
 

<?
$sql 
"SELECT users. * , online.id as status
   FROM users LEFT JOIN online ON users.id = online.id"
;

$res mysql_query($sql) or die(mysql_error());

while(
$row mysql_fetch_assoc($res))
{
  
$row['fid']=is_null($row['fid']) ? 'offline' 'online';

  
print_r($row);   echo "<br>\r\n"// это можно заменить на <tr><td>....
}

   
 
 автор: Dez   (23.12.2006 в 12:56)   письмо автору
 
   для: Trianon   (23.12.2006 в 09:33)
 

Структура таблицы online в первом посте, а user:
id | login | name | pass | email | icq

   
 
 автор: Trianon   (23.12.2006 в 09:33)   письмо автору
 
   для: Dez   (22.12.2006 в 23:05)
 

Если Вы приведете структуры таблиц, можно будет и поподробнее.

   
 
 автор: AlexelA   (22.12.2006 в 23:13)   письмо автору
 
   для: Trianon   (22.12.2006 в 22:57)
 

Согласен, с запросом ошибся и вывел только online
Да вопрос-то был не о запросе, а о самой идее.

   
 
 автор: Dez   (22.12.2006 в 23:05)   письмо автору
 
   для: Trianon   (22.12.2006 в 22:27)
 

>для этого нужен не простой запрос, а внешнее соединение.
>

>SELECT ... FROM users LEFT JOIN online ON users.id = online.id
>

>либо действовать именно так, как описал автор в начальном сообщении.
Можно поподробнее пожайлуста...

   
 
 автор: Dez   (22.12.2006 в 23:00)   письмо автору
 
   для: AlexelA   (22.12.2006 в 22:40)
 

Эх... что то я совсем не могу понять,

<?
$query
="SELECT * FROM `online`";
$result=mysql_query($query);
if(
dbrows($result)>0)  

while(
$onlinedbarray($result)) 
 {

}
}
$query="SELECT * FROM `users` WHERE  ORDER by id DESC";
$result=mysql_query($query);
if(
dbrows($result)>0)  

echo 
"<table><tr><td>Имя<td>Где?";
 while(
$users dbarray($result)) 
 {
echo 
'<tr><td>'.$users['name'].'<td>'.$status;
}
}
?>

Непонимаю... простите :)

   
 
 автор: Trianon   (22.12.2006 в 22:57)   письмо автору
 
   для: AlexelA   (22.12.2006 в 22:40)
 

Не надо, извините, чушь пороть.
>select * from users,online where users.id = online.id;
В результате Вашего селекта (тоже не самого простого - запятая по сути тот же JOIN) будет выведен не весь список, а только тех, кто онлайн. А всё потому, что соединение внутреннее.

   
 
 автор: AlexelA   (22.12.2006 в 22:40)   письмо автору
 
   для: Trianon   (22.12.2006 в 22:27)
 

для этого нужен не простой запрос, а внешнее соединение
Не надо простое превращать в сложное:

select * from users,online where users.id = online.id;

   
 
 автор: Trianon   (22.12.2006 в 22:27)   письмо автору
 
   для: AlexelA   (22.12.2006 в 22:21)
 

для этого нужен не простой запрос, а внешнее соединение.

SELECT ... FROM users LEFT JOIN online ON users.id = online.id

либо действовать именно так, как описал автор в начальном сообщении.

   
 
 автор: AlexelA   (22.12.2006 в 22:21)   письмо автору
 
   для: Dez   (22.12.2006 в 22:14)
 

Ну а в чем тогда проблема?
Если у вас имеется одна таблица с данными о зарегистрированных пользователях,
вы создаете вторую, согласно скрипта по выше приведенному адресу, и объединяя
простым запросом mysql данные из двух таблиц, получаете искомый результат:
рядом со всеми зарег. пользователями сайта вывести кто онлайн, а кто нет.

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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