![]() |
||
| На главную | Новости | Подписка | Поиск по сайту | Форум | E-Mail | | Участие в базе цен | Реклама на сайте | |
||
|
Поиск:
|
Поиск по сайту$ttt=microtime(); $ttt=((double)strstr($ttt, ' ')+(double)substr($ttt,0,strpos($ttt,' '))); //**************************************************************************** function CreateFragment ($sw, $content) { $leight = 200; $frag_end = (stristr ($content, $sw)); $frag_end = substr ($frag_end, 0, $leight); $metka = strpos (strtolower ($content), strtolower ($sw)); $frag_start = substr ($content, 0, $metka); $frag_start = strrev (substr (strrev ($frag_start), 0, $leight)); if (strlen ($frag_start) == $leight) { $space = strpos ($frag_start, " "); $frag_start = "... " . substr ($frag_start, $space); } if (strlen ($frag_end) == $leight) { $space = strpos (strrev ($frag_end), " "); $frag_end = trim (strrev (substr (strrev ($frag_end), $space))); $frag_end = preg_replace ("/[^\w]$/", "", $frag_end) . " ..."; } $fragment = $frag_start . $frag_end; return $fragment; } //**************************************************************************** if (isset ($_GET['sw'])) { $sw_old = $_GET['sw']; $ls2 = $ls3 = ""; } else { $sw_old = ""; } print ' '; if (!empty ($_GET['sw'])) { //**************************************************************************** // ****************** обработка запроса $sw = substr ($sw, 0, 70); // обрезаем запрос до 70 символов $sw = preg_replace ("/[^-%\wчЧ]/", " ", $sw); // заменяем пробелами все, кроме букв, цифр, - и % $sw .= " "; // добавили пробел в конце $sw = " " . $sw; // ... и в начале (это надо для отлова коротких слов в начале и конце запроса) if (isset ($l) and $l != "all") // если ищут фразу, не надо убирать короткие слова { $sw = preg_replace ("/ [-%\w]{1,1} /", " ", $sw); // убираем слова короче букв } //$sw = preg_replace ("/ [-%\w]{1,1} /", " ", $sw); // убираем слова короче букв $sw = preg_replace ("/ +/", " ", $sw); // убираем двойные пробелы $sw = trim ($sw); if (strlen ($sw) < 2 or !preg_match ("/\w/", $sw)) { print "Слишком короткий или пустой запрос!";
}
else
{
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//include ("../incl/mysql_ac");
$MySQLhost="localhost";
$MySQLuser="mocomua";
$MySQLpass="pluh35s";
$MySQLdb="mo_com_ua";
@$link = mysql_connect($MySQLhost, $MySQLuser, $MySQLpass) or die ("Could not connect Результаты: " . ($p-1)*10 . "–" . ((($p-1)*10)+10); $limit = "LIMIT $cp, 100"; //print " SELECT *, MATCH page_content AGAINST ('$sw') AS relev FROM search_content WHERE $test $razdel GROUP BY page_title ORDER BY relev DESC, page_group $limit\n\n"; //print " $test\n\n";
// для проверки: сколько выдала база:
/*
$total = mysql_query ("select count(*) as digit from search_content where $test group by page_title") or die ("Query failed По базе (с учетом группировки): " . mysql_num_rows ($total) . "\n";
*/
// ****************** идиотская работа - вычисление РЕАЛЬНОГО количества рез-тов
$total_real = mysql_query ("SELECT *, MATCH page_content AGAINST ('$sw') AS relev FROM search_content WHERE $test $razdel GROUP BY page_title") or die ("Query failed На самом деле: $real\n"; // ИСПОЛЬЗОВАТЬ $real ДЛЯ РАЗБИВКИ НА СТРАНИЦЫ!!!
$result = mysql_query ("SELECT *, MATCH page_content AGAINST ('$sw') AS relev FROM search_content WHERE $test $razdel GROUP BY page_title ORDER BY relev DESC, page_group $limit") or die ("Query failed Запрос: $sw | найдено документов: $real
" . preg_replace ("/$sw_for_bold/i", "\\0", $fragment) . "\n\n"; if ($z == 10) { break; } } //print " Всего: $z / $base\n";
$p++;
$log = @mysql_query ("insert into search_log (query_id, sword, found, logic, rz) values ('', '$sw', '$real', '$l', '$rz');") or die ("Query failed Всего страниц: " . $real/10;
print " Страницы: "; for ($t = 1; $t <= (($real/10)+1); $t++) { if ($t == ($p-1)) { print "$t | "; } elseif ($t == 1) { print "$t | "; } elseif ($t == $p) { print "$t | "; } else { $cpfut = ($t-1)*10; print "$t | "; } } //print " next\n"; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ } //**************************************************************************** } $ddd=microtime(); $ddd=((double)strstr($ddd, ' ')+(double)substr($ddd,0,strpos($ddd,' '))); //echo (" Время выполнения: ".(number_format(($ddd-$ttt),3))." секунд ' . (number_format(($ddd-$ttt),3));
?>
|
| $bott=getenv("DOCUMENT_ROOT"); include ($bott . "/imgs/bottom.htm") ?> |