Простой скрипт поиска по сайту, написаный на PHP с поиском по базе данных MySQL
Автор: © web-rubik
2556 Просмотры
136 Понравилось
Скачать и установить готовый скрипт поиска по сайту написанный на 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