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

Форум PHP

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

 

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

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

тема: Выбор из БД MySQL

Сообщения:  [1-10]    [11-20]  [21-28] 

 
 автор: cheops   (08.09.2004 в 22:32)   письмо автору
 
   для: XPraptor   (08.09.2004 в 14:03)
 

Хм... хотя я наверное понял почему так... у меня в силу причин сейчас MySQL 3.23 стоит - наверное он так на запрос реагирует :)))

   
 
 автор: XPraptor   (08.09.2004 в 14:03)   письмо автору
 
   для: cheops   (08.09.2004 в 12:32)
 


[в базе]
217.21.51.1        1    07.09.2004
168.255.23.23    1    08.09.2004
123.142.23.25    1    09.09.2004
122.122.122.1    1    10.09.2004
241.232.232.1    2    07.09.2004
217.11.11.2        2    08.09.2004
222.11.22.11    3    07.09.2004
147.252.232.11    3    08.09.2004
165.236.215.32    3    09.09.2004
123.12.241.2    3    10.09.2004
123.245.123.1    4    07.09.2004
253.23.123.12    4    08.09.2004

[в запросе]
122.122.122.1    1    10.09.2004
123.142.23.25    1    09.09.2004
168.255.23.23    1    08.09.2004
217.21.51.1        1    07.09.2004
217.11.11.2        2    08.09.2004
241.232.232.1    2    07.09.2004
123.12.241.2    3    10.09.2004
147.252.232.11    3    08.09.2004
165.236.215.32    3    09.09.2004
222.11.22.11    3    07.09.2004
253.23.123.12    4    08.09.2004
123.245.123.1    4    07.09.2004

   
 
 автор: cheops   (08.09.2004 в 12:32)   письмо автору
 
   для: XPraptor   (08.09.2004 в 11:38)
 

Я использовал вот эту базу - получил бардак для первого пользователя. Если не сложно пришлите свой дамп.

   
 
 автор: XPraptor   (08.09.2004 в 11:38)   письмо автору
 
   для: cheops   (07.09.2004 в 18:52)
 

Не знаю почему у тебя IP первый попавшийся, у меня все в порядке с ним, он именно от этой строки с последним временем посещения, так как группировка именно по этим двум полям.

   
 
 автор: glsv (Дизайнер)   (07.09.2004 в 20:22)   письмо автору
 
   для: Kirill   (06.09.2004 в 20:26)
 

К примеру вот так. Жаль одним запросом не получается :(


<?
 
// выбираем авторов тем, чтобы затем исключить их из следующего запроса
  
$query1="Select id_theme, id_author, author from posts where parent_post=0 group by id_theme";
  
$res mysql_query($query1);   
  if(
$res
  { 
    while(
$result mysql_fetch_array($res)) 
    { 
       
// запрашиваем темы, минимальное время ответа. Автор поста не должен быть равен автору темы.
       
$query2="Select id_theme, min(time) as min_time from posts where id_author<>".$result['id_author']." and id_theme=".$result['id_theme']." group by id_theme";
       
$resposts mysql_query($query2); 
       if(
$resposts
        { 
         while(
$result2 mysql_fetch_array($resposts)) 
         { 
             echo 
$result2["id_theme"]." | "
           echo 
$result2["min_time"]."<br>"
         } 
       } 
    } 
  } 
?>

   
 
 автор: cheops   (07.09.2004 в 18:52)   письмо автору
 
   для: XPraptor   (07.09.2004 в 18:23)
 

Здесь IP-адрес не соответствует MAX(time_last) - я тоже сначала так хотел... :) Т.е. время-то максимальное, а IP-адрес первый попавшийся...

PS К тому же в этой ветке вторая проблема, надо было бы пост повыше запостить....

   
 
 автор: XPraptor   (07.09.2004 в 18:23)   письмо автору
 
   для: cheops   (07.09.2004 в 17:30)
 

Я вот провернул такую схему у меня все работает:
$rez=mysql_query( "SELECT id_author, ip, MAX(time_last) AS [mx_tm] FROM ips GROUP BY id_author, ip");
$tmp_auth=0;
$auth=0;
while($row=mysql_assoc_fetch($rez)){
$auth=$row["id_author"];
$mx_tm=$row["mx_tm"];
$ip=$row["ip"];
if($auth!=$tmp_auth){print "Time=".$mx_tm."IP=".$ip;}
$tmp_auth=$auth;
}


Результат запроса возвращает все строки но они отсортированы по убыванию максимального времени, поэтому каждая первая строка с новым ид автора это и есть время последнего посещения. Enjoy :-)

   
 
 автор: cheops   (07.09.2004 в 17:30)   письмо автору
 
   для: Kirill   (07.09.2004 в 16:58)
 

Да, я тоже долго привыкал :))), что программой могут одновременно по 100 человек пользоваться, а сама программа выполняется чёрт знает где и совсем не так как на локальной машине :)))

   
 
 автор: Kirill   (07.09.2004 в 16:58)   письмо автору
 
   для: cheops   (07.09.2004 в 16:45)
 

Обидно, но чтож.. веб программирование немного отличается от привычного :)

   
 
 автор: cheops   (07.09.2004 в 16:45)   письмо автору
 
   для: Kirill   (07.09.2004 в 15:59)
 

А... Т.е. авторы разные... Всё равно в один запрос не получится :( И даже помоему не получится обойтись без рекурсивного спуска в PHP, так как MySQL не поддерживает внешних ключей (в версии 4). Нужно будет разворачивать каждую тему вычисляя время между предыдущим и последующим сообщением и помещать их в массив... Мда... вся эта конструкция будет долго работать :))) Если захотите это применить на практике, следует сразу вычислять временную разницу, при добавлении сообщения и помещать в базу данных, чтобы разнести нагрузку во времени...

   

Сообщения:  [1-10]    [11-20]  [21-28] 

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

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