За последние 24 часа нас посетили 18869 программистов и 1623 робота. Сейчас ищут 929 программистов ...

Помогите плииз, как создать поиск по сайту в php?

Тема в разделе "PHP для новичков", создана пользователем beki007, 25 дек 2011.

  1. beki007

    beki007 Активный пользователь

    С нами с:
    25 дек 2011
    Сообщения:
    25
    Симпатии:
    0
    Здравствуйте дорогие гуру,
    Помогите пожалуйста, как создать в php и поиск по сайту???
    я вот вначале страницы написал такой код:
    <?php include ("blocks/bd.php");

    if (isset ($_POST['submit_s']))
    {
    $submit_s = $_POST['submit_s'];
    }

    if (isset ($_POST['search']))
    {
    $search = $_POST['search'];
    }

    if (isset ($submit_s))
    {
    if (empty($search) or strlen($search) < 3)
    {
    exit ("<div class='content'>Поисковый запрос не введен либо он менее 3-х символов</div>");
    }
    $search = trim ($search);
    $search = stripslashes ($search);
    $search = htmlspecialchars ($search);
    }
    else
    {
    exit ("<div class='content'>Вы не ввели слово в поле поиска</div>");
    }
    ?>

    потом на необходимое место:

    <?php
    $result = mysql_query ("SELECT id,title,description FROM news AGAINST('$search')",$db);
    if (!$result)
    {
    echo "Запрос не прошел. Код ошибки: ";
    exit (mysql_error());
    }
    if (mysql_num_rows($result) > 0)
    {
    $myrow = mysql_fetch_array ($result);
    do{
    printf ("
    <div class='content'>
    <p><a href='news.php?id=%s'>%s</a></p>
    <div>%s</div>
    </div>", $myrow["id"], $myrow["title"], $myrow["description"]);
    }
    while ($myrow = mysql_fetch_array ($result));
    }
    else "Ничего не найдено";
    exit ();
    ?>
    этот код, и выводит ошибку, вот здесь, (FULLTEXT не написано или че): $result = mysql_query ("SELECT id,title,description FROM news AGAINST('$search')",$db);

    помогите как лучше мне сделать поиск по сайту???
     
  2. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    может лучше установить, что-нибудь для полноценного поиска? а не городить свое велосипеды, при том медленные.
    установите solr\elastic\lucene
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Попов не объяснял этого? Как правильно формировать SQL запросы тоже не объяснял? Почему в запросе ты используешь AGAINST, но не используешь MATCH? И куда подевался WHERE ?

    на этом сайте не любят поповщину по 3 причинам:
    - пользователям внушают, что после данных курсов они станут гуру (после 3 дней-то?)
    - показывают неправильные методы работы
    - не объясняют базовые основы

    А теперь по теме:

    Текущие версии мускула по умолчанию создают таблицы в формате InnoDB, который поддерживает транзакции, но не поддерживает полнотекстовый поиск. Поэтому необходимо вручную создавать таблицы в формате MyISAM. Кроме этого для полнотекстового поиска необходимо создать специальный FULLTEXT индекс.

    Для начала http://mysql.ru/docs/man/Fulltext_Search.html ; затем берёшь гугл и вперёд искать.
     
  4. beki007

    beki007 Активный пользователь

    С нами с:
    25 дек 2011
    Сообщения:
    25
    Симпатии:
    0
    Спасибо вам за совет, это точно я наоборот заблудился после поповского урока, но для начало пойдет,
    а могу ли готовые скрипты установить, если есть хорошие варианты укажите пожалуйста ссылки