Простой скрипт поиска по сайту, написаный на PHP с поиском по базе данных MySQL
Автор: © web-rubik
3386 Просмотры
138 Понравилось
Скачать и установить готовый скрипт поиска по сайту написанный на 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 на свои, и полноценный поиск по сайту у вас есть.
На этом у меня всё! Если что-то не понятно – пишите в комментариях...
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