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

Форум PHP

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

 

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

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

тема: "Точка входа" - 2
 
 автор: Loki   (19.04.2005 в 17:04)   письмо автору
 
 

нашел в отчете косяк запросы к базе

SELECT id_page, min( putdate ) FROM ip WHERE putdate < DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL 0 DAY AND putdate >= DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL 1 DAY GROUP BY ip

и

SELECT id_page, max( putdate ) FROM ip WHERE putdate < DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL 0 DAY AND putdate >= DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL 1 DAY GROUP BY ip

выдают в столбец id_page одинаковые результаты, хотя, в остальных колонках вроде все правильно.
Ошибка в синтаксисе?

   
 
 автор: cheops   (19.04.2005 в 21:18)   письмо автору
 
   для: Loki   (19.04.2005 в 17:04)
 

А в смысле выдаются одинаковые результаты?

PS Это продолжение темы

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3214

   
 
 автор: Loki   (19.04.2005 в 21:51)   письмо автору
 
   для: cheops   (19.04.2005 в 21:18)
 

То и значит, что столбцы id_page полученные при помощи этих запросов идентичны. То есть группировка по ip происходит, минимальная дата выбирается, а вот id_page выбирается первый попавшийся для данного ip. Так как я не силен в sql запросах, то не могу его поправить сам (из тех комбинаций что знал уже попробовал все:). Пытаюсь придумать другой алгоритм, но пока в голову приходят довольно громоздкие основанные на практически полном переборе, что не есть гут.

   
 
 автор: cheops   (19.04.2005 в 22:15)   письмо автору
 
   для: Loki   (19.04.2005 в 21:51)
 

Да с GROUP BY имеется такая неприятная штука, пожалуй придётся в цикле извлекать id_page используя ранее полученную дату и ip-адрес.

   
 
 автор: Loki   (23.04.2005 в 00:44)   письмо автору
 
   для: cheops   (19.04.2005 в 22:15)
 

Подправил скрипт. теперь вроде наконец-то работает:)

   
 
 автор: sata   (23.04.2005 в 16:22)   письмо автору
 
   для: Loki   (23.04.2005 в 00:44)
 

Прочёл я ветку от начала до конца задумка очень хорошая у себя установил потестил пришёл к выводу что у меня оно что то не пашет и я в упор не пойму а нафига в 78 строке print $query_points; выводить там же запрос к базе идёт ? Был бы очень признателен если бы поделились работающим изделием потому что весч действительно стоящая

   
 
 автор: Loki   (23.04.2005 в 17:06)   письмо автору
 
   для: sata   (23.04.2005 в 16:22)
 

Склероз:)
Забыл убрать после отладки.

Не работает скорее всего потому, что у меня учет ведется по названиям страниц, а не по их адресам (точнее, и по тому и по другому). Cheops грозился в следующей версии сделать так же, но похоже что так и не решиться, а мне поддерживать две версии особого интереса нет.
Попробую навскидку подсказать что нужно поправить:

 $names[($p_names['id_page'])]['title']=$p_names['title'];

в строке 94 закомментировать, так как у вас такого столбца нет.
В строке 112

print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$names[$id]['name']." target=_blank>".$names[$id]['title']."</a></td><td>".$hits."</td><tr>";

заменить на

print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$names[$id]['name']." target=_blank>http://".$_SERVER["SERVER_NAME"].$names[$id]['name']."</a></td><td>".$hits."</td><tr>";

в строке 126

print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$zero['name']." target=_blank>".$zero['title']."</a></td><td>0</td><tr>";

заменить на

print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$zero['name']." target=_blank>http://".$_SERVER["SERVER_NAME"].$zero['name']."</a></td><td>0</td><tr>";


Вроде должно заработать.

   
Rambler's Top100
вверх

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