Здесь можно найти всё что Вам нужно! ⇒

Почта techsupport@web-rubik.ru

Простой скрипт поиска по сайту, написаный на PHP с поиском по базе данных MySQL

Автор: © web-rubik

Скачать и установить готовый скрипт поиска по сайту написанный на PHP с поиском по базе данных MySQL. На мой взгляд - это самый простой способ для полноценного поиска по сайту на PHP и MySQL. Создайте собственный поиск по сайту без потусторонних поисковых систем. Если у вас ещё нет своего поиска по сайту, посмотрите, как легко это можно осуществить.

Вот сам код с описанием каждого действия:


<?php // <==================================================================================================================
// ==================================================> ------------- <======================================================
// ===============================================> © Copyright barik <==================> Скрипт: ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ
// ==================================================> ------------- <======================================================
// ========================================================================================================================= 
function connectDB (){ // =============================================================> Открываем соединение с базой данных
    // =================================================================> Определяем константы для соединения с базой данных
    define(′DB_HOST′, ′localhost′); // =======================================================================> Имя хостинга
    define(′DB_USER′, ′root′); // ===================================================================================> Логин
    define(′DB_PASS′, ′1234′); // ==================================================================================> Пароль
    define(′DB_NAME′, ′test′); // =========================================================================> Имя базы данных
    // =================================================================================> Пытаемся соединится с базой данных
    $dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASS) // ====================================================> Подключаемся
        or die("Ошибка соединения с базой данных! " . mysql_error()); // =============> Если подключения нет - выдаём ошибку
    mysql_select_db(DB_NAME); // ========================================================================> Выбрираем таблицу
    mysql_query(′SET NAMES utf8′); // =============================================================> Устанавливаем кодировку
    return $dbconn;} // ==================================================================> Возвращаем дескриптор соединения
function closeDB($dbconn){mysql_close($dbconn);} // ===================================> Закрываем соединение с базой данных
// =========================================================================================================================
// =========================================================================================================================
// ===================================================================================> // Скрипт: ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ
// =========================================================================================================================
// =====================================================================================================================> ?>

<?php // <==================================================================================================================
// ==================================================> ------------- <======================================================
// ===============================================> © Copyright barik <=============================> Скрипт: ПОИСК ПО САЙТУ
// ==================================================> ------------- <======================================================
// =========================================================================================================================
require_once(′db.php′); // =======================================================================> Подключение к бае-данных
function search ($query){ // =================================================================> Обработка поискового запроса
$text = ′′; // ===============================================================================> Переменная для вывода текста
// ============================================================================================>  Проводим фильтрацию данных
$query = trim($query); // ==================================================================>  Обрезаем пробелы и спецсиволы
$query = strip_tags($query); // ==================================================================>  Удаляем HTML и PHP теги
$query = mysql_real_escape_string($query); // =============================================>  Экранируем специальные символы
if(!empty($query)){ // ====================================================================> Если поисковый запрос не пустой
  if(strlen($query) < 4){ // ================================================================> Если запрос меньше 4 символов
    $text = ′<p>короткий поисковый запрос.</p>′;} // ==================================================> Сообщение об ошибке
  else if(strlen($query) > 128){ // ===============================================================> Если более 128 символов
    $text = ′<p>длинный поисковый запрос.</p>′;} // ===================================================> Сообщение об ошибке
  else{ // =================================================================================================> Если всё верно
    $sql = "SELECT * FROM article WHERE h LIKE ′%$query%′ OR p LIKE ′%$query%′"; // ===> Формируем строку поискового запроса
    $result = mysql_query($sql); // =======================================================================> И выполняем его
    $num = mysql_num_rows($result); // =========================================> Определим колличество найденных совпадений
    if($num > 0){ // =================================================================================> Если совпадения есть
      $row = mysql_fetch_assoc($result); // =================================================> Получаем ассоциативный массив
      $text .= ′<p>По вашему запросу  <strong>′.$query.′</strong>′; // =====> И начинаем формировать строку поисковой выдачи
      $text .= ′ найдено ′.$num.′ совпадений</p>′ ; // ===================================> Показываем количество совпадениц
      // ===================================================================================================================
      do{ // ===========================================================================> Динамический вывод всех совпадений
        $text .= ′<h3>′.$row[′h′].′</h3>′;
        $text .= ′<p>′.nl2br($row[′p′]).′</p>′;}
      while($row = mysql_fetch_assoc($result));} // =================================> Делаем это пока у нас есть результаты
    else{ // =============================================================================> Если найти совпадение не удалось
      $text = ′<p>По вашему запросу ничего не найдено.</p>′;}}} // ====================================> Сообщение о неудаче
  else{ // =========================================================================================> Если запрос был пустой
    $text = ′<p>Задан пустой поисковый запрос.</p>′;} // ==============================================> Сообщение об ошибке
return $text;} // =======================================================> Возвращаем сформированную строку поисковой выдачи
// =========================================================================================================================
// ==================================================================================================> Сам скрипт обработчик
if(isset($_POST[′query′])){ // ===========================================================================> Если есть запрос
  $connect = connectDB(); // ==========================================================> Открываем соединение с базой данных
  $search_result = search($_POST[′query′]); // ================================================> Определяем поисковый запрос
  echo $search_result; // =========================================================================================> Выводим
  closeDB ($connect);} // ============================================================> Закрываем соединение с  базой данных
// =========================================================================================================================
// =========================================================================================================================
// ==============================================================================================> // Скрипт: ПОИСК ПО САЙТУ
// =========================================================================================================================
// =====================================================================================================================> ?>

Как осуществить поиск по сайту на PHP и MySQL у себя на сайте.
Безусловно, поиск по сайту, это неотъемлемая часть в любом достойном Web-сайте. Будь то интернет магазин и надо найти товар, или тематический блог и надо найти статью, если есть поиск по сайту, для пользователя это сэкономит время и облегчит задачу! Но как он устроен?
Когда я искал в интернете готовый скрипт поиска по сайту, я не смог ни чего найти. Толи я чего-то не понимал, толи хорошего и полноценного поиска по сайту на языке PHP с выводом из базы данных MySQL - в сети интернет не было. По этому, мне пришлось перерыть весь алгоритм поиска и собрать полноценный, со всеми проверками - поиск по сайту.

Схема поиска выглядит так:
1 – На каждой странице, в шапке или подвале сайта, установлена форма поиска, которая после ввода запроса и подтверждения - перенаправляет на страницу с выводом найденной информации.
2 – На самой странице вывода поискового запроса находится скрипт, который делает проверку передаваемого из формы значения, ищет в базе данных MySQL совпадения и если такие есть – выводит.
Всё на первый взгляд очень просто.

Простая HTML форма, состоящая из поля для ввода поискового запроса - type="search" и кнопки подтверждения - type="submit". При нажатии на кнопку найти, форма отправляет значение из поля поискового запроса методом POST на страницу поиска в скрипт обработчик - method="post" action="../search/index.php".

Теперь давайте приступим к самой странице поиска
Для начала, нужно подключиться к базе данных, где будет храниться таблица с информацией, в которой мы будем производить поиск.
Создайте файл db.php и на странице, где будет осуществляться поиск, установите к нему подключение require_once(′db.php′);
В то место, где будут выводиться результаты, вставьте выше указанный скрипт, предварительно поменяв имена таблиц MySQL на свои. В скрипте я описал каждый шаг, по этому описывать ещё раз - это лишнее.

Скрипт поиска по сайту полностью рабочий и вы легко можете вкрутить его в ваш сайт! Вам остаётся только поменять название таблицы article, с полями h и p на свои, и полноценный поиск по сайту у вас есть.

На этом у меня всё! Если что-то не понятно – пишите в комментариях...



Понравилось 136  

13 Комментарии КОТОРЫЕ

Виктория

Спасибо за скрипт, единственный из множества просмотренных мной скриптов, который заработал и заработал хорошо) Спасибо автору!

© web-rubik

Пожалуйста Виктория!
Все скрипты опубликованные мной проверенны в моих же проектах ;)

Esq

Благодарю за скрипт, всё работает

Даниял

Здраствуйте! можно код для бд

© web-rubik

Так это и есть код поиска по бд

Бехзод

спс бро ты лучший, очень помог

Сергей

Код не рабочий. Это полная лажа.

Там где то лишние фигурные скобки.

Скачать есть, а где он работает нету?.

© web-rubik

Он работает на этом сайте! Если у Вас руки не от туда растут, не надо всех в этом винить..

Сергей

Возможно и растут.

Просто код отличается тот который приведен на черном фоне и в самом исходнике.

Оксана

И кто это писал?

Лучше бы не позорились, это работать априори не может



$sql = "SELECT * FROM article WHERE h LIKE ′%$query%′ OR p LIKE ′%$query%′";



WHERE h - это что такое???



Такое может писать только БОТАН - ИНПОТЕНТ )))

© web-rubik

Для особо внимательных:

h - это графа с заголовком таблицы MySQL, анологично и с - p, это описание. Вы называйте графы как хотите, я их назвал так..

Рафик

Здравствуйте! У меня есть сайт, написанный на html, js, css (у него нет домена, он внутренний, доступен мне и пользователям, которым я кину файлы). Хотелось понять как добавить код, описанный выше, чтобы он заработал? В папке где находятся все файлы, например, index.html я создал файл db.php, вставил туда код выше, а дальше какие мои действия? Нужно что-то же добавить по идее в файл index.html.

© web-rubik

Поиск ведётся по базе данных MySQL, где у Вас хранится она, там и ищите, а скрипт надо ставить на ту страницу, на которой будет выводиться поиск.


Оставить комментарий

Оставленные комментарии проверяются технической частью интернет портала Web-rubik.ru



←−−−