".$bannertop."
"; } else {$bannertop="";} // статистика для шапки: // выбираем значения из сохраненной статистики $r=mysql_query("Select * FROM count2 WHERE 1") or die(mysql_error()); // предприятий в справочнике: $cnt1=mysql_result($r,0,1); // каталог оборудования $cnt3=mysql_result($r,0,3); // $counter = "".$cnt1." предприятий | ".$cnt3." товаров "; $counter = "".$cnt1." предприятий | ".$cnt3." товаров "; if (isset($t)) { $canonical="\r\n"; } else { $canonical="\r\n"; } include "_top.php"; /* Схема БД brands2: CREATE TABLE `brands2` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , = идентификатор `pubdate` INT( 11 ) , = год основания `link` TEXT NOT NULL , = сайт `title` TEXT NOT NULL , = название `description` TEXT NOT NULL , = текст описания `icon` TEXT NOT NULL , = картинка-логотип `address` TEXT NOT NULL , = адрес `email` TEXT NOT NULL , = эл.почта UNIQUE ( `id` ) ) CHARACTER SET = cp1251 COMMENT = 'каталог брендов'; */ /* индекс: http://www.oborud.info/brands/ подробная информация о бренде: http://www.oborud.info/brands/?t=a */ ?> "; } else { $stat[]=" "; } }; // echo count($word); // проверка if (count($word) >'1') { $word_stats = "

По отдельным словам запроса найдено:

stem_word($value); // } // соединяем слова //if (strlen($var)>5) { $trimmed=implode (" ", $trimmed_stemmer); } //else $trimmed=implode (" ", $trimmed); $trimmed=implode (" ", $trimmed); // По идее, нельзя давать пользователю возможности искать по слишком коротким словам // кроме всего прочего, это сильно загружает сервер. Итак, разрешим искать только // по словам, которые длиннее двух букв (если ограничение больше, надо заменить // "{1,2}" на "{1, кол-во символов}"). $trimmed = trim(ereg_replace("/\s(\S{1,2})\s/", " ", ereg_replace(" +", " "," $trimmed "))); // А после замены плохих слов - надо сжать двойные пробелы (они были сделаны // специально для корректного поиска коротких слов). $trimmed = ereg_replace(" +", " ", $trimmed); $trimmed = strtolower($trimmed); // убираем заглавные буквы { if (strlen(trimmed)<2) $trimmed=""; } // если слово меньше 3 символов то игнорируем $QSearch="AND (title like '%". str_replace(" ", "%' AND title LIKE '%", $trimmed). "%' OR description like '%". str_replace(" ", "%' AND description LIKE '%", $trimmed). "%') "; // echo $QSearch; // проверка // конец условия вызова поиска } if (empty($t) AND empty($a)) { // вывод индекса BEGIN // если не вызван поиск BEGIN if (!isset($v)) { echo "

главная  »  бренды

"; echo "

Бренды, торговые марки производителей

"; $r=mysql_query("SELECT LEFT(title,1) AS letter from brands2 WHERE id>0 GROUP BY letter ORDER BY FIND_IN_SET(upper(letter),'А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0'), letter ASC") or die(mysql_error()); echo "
"; $cnt=mysql_num_rows($r); for ($i=0;$i<$cnt ;$i++) { if (preg_match('/^[а-я]+$/i',mysql_result($r,$i,0))) { echo " [".mysql_result($r,$i,0)."] "; } } echo "

"; echo "
"; $cnt=mysql_num_rows($r); for ($i=0;$i<$cnt ;$i++) { if (preg_match('/^[a-z0-9_]+$/i',mysql_result($r,$i,0))) { echo " [".mysql_result($r,$i,0)."] "; } } echo "

"; echo "
"; echo "
    "; } // если не вызван поиск END $portion = 60; # формируем SQL if (!isset($i0)) $i0=0; settype($i0,"integer"); // $i1=$i0+$portion; $i1=$portion; $result = mysql_query("SELECT DISTINCT SQL_CALC_FOUND_ROWS id, pubdate, link, title, description, icon, address, email from brands2 WHERE id>0 order by FIND_IN_SET(UPPER(left(title,1)),'А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0'), title ASC LIMIT $i0, $i1;") or die(mysql_error()); $c = ''; // если вызван поиск if (isset($v) AND strlen($v)>3 ) { // функция подсчета количества отдельных найденых слов поискового запроса BEGIN function highlight_vv($vv) { $QSearch="AND (title like '%". str_replace(" ", "%' AND title LIKE '%", $vv). "%' OR description like '%". str_replace(" ", "%' AND description LIKE '%", $vv). "%') "; $_sql = mysql_query("SELECT DISTINCT id, pubdate, link, title, description, icon, address, email from brands2 WHERE id>0 $QSearch order by title ASC;") or die(mysql_error()); $_numrows = mysql_num_rows($_sql); return $_numrows; } // функция подсчета количества отдельных найденых слов поискового запроса END $result = mysql_query("SELECT DISTINCT SQL_CALC_FOUND_ROWS id, pubdate, link, title, description, icon, address, email from brands2 WHERE id>0 $QSearch order by title ASC LIMIT $i0, $i1;") or die(mysql_error()); // считаем кол-во найденных всего $_query = "SELECT FOUND_ROWS()"; $_result = mysql_query($_query); $_numrows = mysql_result($_result,0); // echo "

    Результаты поиска: ".$trimmed."



    "; $word = explode(" ", $trimmed); // print_r($word); // проверка while (list($k, $vv) = each($word)) { if (strlen($vv)>=3) { $stat[]="
• $vv [".highlight_vv($vv)."]
•  ".$vv." [0]
". implode("", $stat). "
"; } if (strlen($trimmed)<3) {$_numrows=0;}; unset($stat); // echo $_numrows; // проверка // было if ($_numrows > ... и если только по отдельным словам, а нет результатов по всем словам запроса - то не выводило if (count($word) > 0) { $head="

главная  »  бренды  »  поиск: ".strtolower(trim($v))."

Поиск в брендах

Вы искали: «".strtolower(trim($v))."» найдено совпадений: ".$_numrows."
".$word_stats."


"; } if (count($word) < 1) { $head="

главная  »  бренды  »  поиск: ".strtolower(trim($v))."

Поиск в брендах

Вы искали: «".strtolower(trim($v))."» найдено совпадений: 0


"; } // echo $numrows; // найдено в базе данных по запросу if ($_numrows==0) { $s="

Ничего не нашли? Подсказка!

Не делайте слишком сложный запрос, начните с одного или двух ключевых слов.

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

Или задайте свой вопрос здесь и Вам обязательно ответят:

"; echo $head; echo $s; } if (strlen($v)<3) { $s="

Слишком корткий поисковый запрос!

"; echo $head; echo $s; } if ($_numrows > 0) { echo $head; echo $s; // echo "

подписаться на рассылку


"; } $querypagination = "&v=".rawurlencode($trimmed).""; echo "