Как организовать поиск на сайте.

Crazy182

Старатель
Регистрация
29 Ноя 2006
Сообщения
214
Реакции
14
Сайт делаю на html посредством ssi, нужен поиск на сайте, подскажите хороший скрипт без заморочек особых. Простой обычно поиск. Хост платный.
 
Глянул описание, страницы в расширении .shtml и php в ней не будет работать, может кто знает свежий скрипт поиска, обращения к php файлам через html форму.
 
Причем тут .shtml? Вы код формы вносите в то место которое требуется
Код:
<form action="phprusearch/" method="post">
<input type="text" name="query"><br> <input type="submit" value="Найти">
</form>
 
А чем не подходит Яндекс.Поиск по сайту, созданный с помощью родного конструктора?
Для просмотра ссылки Войди или Зарегистрируйся
 
PHP:
<?php
// Простой поиск по текстовым полям из базы
$query = mysql_real_escape_string ( urldecode ( $_GET ['query'] ) );
$fields = array ();
// Этот код можно пропустить, и просто вбить в массив $fields нужные поля
$sql = mysql_query ( "SHOW COLUMNS FROM `table` WHERE `Type` LIKE '%text%' OR `Type` LIKE '%char%'" );
if (is_resource ( $sql ) && mysql_num_rows ( $sql ) > 0) {
    while ( ($row = mysql_fetch_assoc ( $sql )) != false ) {
        $fields [] = "`{$row['Field']}` LIKE '%{$query}%'";
    }
}
if (count ( $fields ) > 0) { // это можно сделать в первой проверке и просто сделать
                      // return;
    $sql = mysql_query ( "select * from `table` where (" . implode ( " OR ", $fields ) . ") здесь доп парамты" );
    if (is_resource ( $sql ) && mysql_num_rows ( $sql ) > 0) {
        while ( ($row = mysql_fetch_assoc ( $sql )) != false ) {
            // здесь вывод
        }
    }
}
+ можно сделать разделение слов и сделать

Код:
// допустим $querys содержить массив из слов который отправил юзвер например "hello world" array('hello', 'world')
// где $fields [] = "`{$row['Field']}` LIKE '%{$query}%'"; меняем на
for ($i=0; $i<count($querys); $i++){
  $fields [] = "`{$row['Field']}` LIKE '%".mysql_real_escape_string($querys[$i])."%'"
}

Если нужен поиск как у яндекса.. то тут придётся повозится...
 
Назад
Сверху