$name) //исправлено 25.06.02 Loki { echo ""; echo ""; for($i=0; $i<4; $i++) echo ""; echo ""; echo ""; } ?>
Поисковые системы % >Сегодня % >Вчера % >За 7 дней % >За 30 дней % >За всё время
$name".$hit["$key"][$i]."".$hit["$key"][4]."

= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL $begin DAY"; //01.03.06 Loki $tmp1 = " AND putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL $end DAY"; //01.03.06 Loki // Постраничная навигация $page_link = 3; $start = ($page - 1)*$pnumber; if($srch != "total") { $query = "SELECT COUNT(*) FROM $tbl_searchquerys, $tbl_pages WHERE $tbl_searchquerys.id_page = $tbl_pages.id_page AND $tbl_searchquerys.searches = '$srch' ".$tmp1.$tmp2." ORDER BY putdate DESC"; } else { $query = "SELECT COUNT(*) FROM $tbl_searchquerys, $tbl_pages WHERE $tbl_searchquerys.id_page = $tbl_pages.id_page ".$tmp1.$tmp2." ORDER BY putdate DESC"; } $num = mysql_query($query); if(!$num) puterror("Ошибка при обращении к таблице страниц"); // Ввыводим ссылки на другие страницы $total = mysql_result($num,0); $number = (int)($total/$pnumber); if((float)($total/$pnumber) - $number != 0) $number++; if($page - $page_link > 1) { echo " [1-$pnumber]  ...   "; // Есть for($i = $page - $page_link; $i<$page; $i++) { echo "  [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } } else { // Нет for($i = 1; $i<$page; $i++) { echo "  [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } } // Проверяем есть ли ссылки справа if($page + $page_link < $number) { // Есть for($i = $page; $i<=$page + $page_link; $i++) { if($page == $i) echo " [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]  "; else echo "  [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } echo " ...    [".(($number - 1)*$pnumber + 1)."-$total] "; } else { // Нет for($i = $page; $i<=$number; $i++) { if($number == $i) { if($page == $i) echo " [".(($i - 1)*$pnumber + 1)."-$total] "; else echo " [".(($i - 1)*$pnumber + 1)."-$total] "; } else { if($page == $i) echo " [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]  "; else echo "  [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } } } echo "
"; // Конец постраничной навигации // Расставляем and if($srch != "total") { $query = "SELECT $tbl_pages.title AS title, $tbl_pages.name AS url, $tbl_searchquerys.query AS name, putdate, INET_NTOA(ip) AS ip, searches FROM $tbl_searchquerys, $tbl_pages WHERE $tbl_searchquerys.id_page = $tbl_pages.id_page AND $tbl_searchquerys.searches = '$srch' ".$tmp1.$tmp2." ORDER BY putdate DESC LIMIT $start, $pnumber"; } else { //изменено 25.02.06 Loki $query = "SELECT $tbl_pages.title AS title, $tbl_pages.name AS url, $tbl_searchquerys.query AS name, putdate, INET_NTOA(ip) AS ip, searches FROM $tbl_searchquerys, $tbl_pages WHERE $tbl_searchquerys.id_page = $tbl_pages.id_page ".$tmp1.$tmp2." ORDER BY putdate DESC LIMIT $start, $pnumber"; } $qwr = mysql_query($query); if(!$qwr) puterror("Ошибка при выполнении запроса".$query); if(mysql_num_rows($qwr)>0) { echo "
"; while($ip = mysql_fetch_array($qwr)) { if(empty($ip['name'])) continue; //исправлено 25.02.06 Loki echo ""; } echo "
".htmlspecialchars($ip['name'])." $ip[searches] $ip[putdate] ".$ip[ip]." ".$ip['title']."
"; } } function search($begin, $end, $tbl_searchquerys, $tbl_arch_num_searchquery, $tbl_arch_num_searchquery_month, $id_page) { // Эта переменная определяет осуществляется ли запрос к конкретной // странице или ко всему сайту. if($id_page == "") $tmp = ""; else $tmp = " AND id_page = $id_page"; // Обнуляем хиты и хосты $hits = array(); ///////////////////////////////////////////////////////////////////////////// // Исходим из таблицы соответствия // begin end // сегодня 1 0 - это извлекаем из $tbl_ip // вчера 2 1 - это извлекаем из $tbl_arch_hits // неделя 7 0 - это извлекаем из $tbl_arch_hits // месяц 30 0 - это извлекаем из $tbl_arch_hits // всё время 0 0 - это извлекаем из $tbl_arch_hits ///////////////////////////////////////////////////////////////////////////// // Эта переменная определяет осуществляется ли запрос к конкретной // странице или ко всему сайту. if($id_page == "") $tmp = ""; else $tmp = " AND id_page=$id_page"; // Если учёт происходит вплоть до сегодняшнего дня - учитываем это, обращаясь // к текущим хитам и хостам в таблице $tbl_ip if($end == 0) { // Запрос на статистику за временной интервал определяемый // параметрами $begin,$end if($begin == 0) $tmp2 = ""; else $tmp2 = " AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$begin' DAY"; $tmp1 = " AND putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$end' DAY"; // Формируем SQL-запросы $first = "SELECT COUNT(*) FROM $tbl_searchquerys WHERE searches ="; $last = $tmp1.$tmp2.$tmp; $query['ynd'] = $first."'yandex' ".$last; $query['ram'] = $first."'rambler' ".$last; $query['gog'] = $first."'google' ".$last; $query['apt'] = $first."'aport' ".$last; $query['msn'] = $first."'msn' ".$last; // Выполняем SQL-запросы foreach($query as $search => $value) { $hit[$search] = mysql_query($value); if(!$hit[$search]) puterror("Ошибка при обращении к таблице поисковых запросов"); $hits[$search] += mysql_result($hit[$search], 0); } } // Если требуемый интервал затрагивает дни, упакованные в архивную таблицу // плюс ко всему извлекаем информацию из архивной таблицы $tbl_arch_searchquery if($begin != 1 && $begin != 0) { // Запрос на статистику за временной интервал определяемый // параметрами $begin,$end if($end != 0) $tmp1 = "putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '".($end - 1)."' DAY"; else $tmp1 = "putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$end' DAY"; if($begin == 0) $tmp2 = ""; else $tmp2 = " AND putdate >= DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '".($begin - 1)."' DAY"; $last = $tmp1.$tmp2.$tmp; $query['ynd'] = "SELECT SUM(number_yandex) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['ram'] = "SELECT SUM(number_rambler) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['gog'] = "SELECT SUM(number_google) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['apt'] = "SELECT SUM(number_aport) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['msn'] = "SELECT SUM(number_msn) FROM $tbl_arch_num_searchquery WHERE ".$last; // Выполняем SQL-запросы foreach($query as $search => $value) { $hit[$search] = mysql_query($value); if(!$hit[$search]) puterror("Ошибка при обращении к таблице архивных записей "); $hits[$search] += mysql_result($hit[$search], 0); } } // Если требуемый интервал затрагивает дни, упакованные в месячную архивную таблицу // плюс ко всему извлекаем информацию из архивной таблицы $tbl_arch_num_searchquery_month if($begin == 0 && $end == 0) { // Запрос на статистику за временной интервал определяемый // параметрами $begin,$end $tmp1 = " putdate < DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') - INTERVAL '$end' DAY"; $tmp2 = ""; $last = $tmp1.$tmp2.$tmp; $query['ynd'] = "SELECT SUM(number_yandex) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['ram'] = "SELECT SUM(number_rambler) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['gog'] = "SELECT SUM(number_google) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['apt'] = "SELECT SUM(number_aport) FROM $tbl_arch_num_searchquery WHERE ".$last; $query['msn'] = "SELECT SUM(number_msn) FROM $tbl_arch_num_searchquery WHERE ".$last; // Выполняем SQL-запросы foreach($query as $search => $value) { $hit[$search] = mysql_query($value); if(!$hit[$search]) puterror("Ошибка при обращении к таблице архивных записей ".$value); $hits[$search] += mysql_result($hit[$search], 0); } // Получаем самое старое число из таблицы $tbl_arch_hits, // всё, что позже берём из таблицы $tbl_arch_hits_month $select = "SELECT UNIX_TIMESTAMP(MIN(putdate)) AS data FROM $tbl_arch_num_searchquery"; $dat = mysql_query($select); if(!$dat) exit("month ".mysql_error()); if(mysql_num_rows($dat) > 0) { $last_date = mysql_result($dat, 0); $tmp1 = " putdate < '".date("Y-m-01 23:59:59", $last_date)."'"; $tmp2 = ""; // Формируем SQL-запросы $last = $tmp1.$tmp2.$tmp; $query['ynd'] = "SELECT SUM(number_yandex) FROM $tbl_arch_num_searchquery_month WHERE ".$last; $query['ram'] = "SELECT SUM(number_rambler) FROM $tbl_arch_num_searchquery_month WHERE ".$last; $query['gog'] = "SELECT SUM(number_google) FROM $tbl_arch_num_searchquery_month WHERE ".$last; $query['apt'] = "SELECT SUM(number_aport) FROM $tbl_arch_num_searchquery_month WHERE ".$last; $query['msn'] = "SELECT SUM(number_msn) FROM $tbl_arch_num_searchquery_month WHERE ".$last; // Выполняем SQL-запросы foreach($query as $search => $value) { $hit[$search] = mysql_query($value); if(!$hit[$search]) puterror("Ошибка при обращении к таблице архивных записей"); $hits[$search] += mysql_result($hit[$search], 0); } } } $total = array_sum($hits); // Во избежание деления на 0 проверяем значение общего $total if($total == 0) $total = 1; return array($hits['ram'], $hits['ynd'], $hits['apt'], $hits['gog'], $hits['msn'], $total); } ?>