Пошук по сайту ajax php mysql (php mysql) - хочу веб-сайт

Пошук по сайту AJAX + PHP + MySQL (PHP + MySQL)

Добрий день дорогі друзі, здрастуйте.
Ніяк не дає мені спокою питання організації призначеного для користувача пошуку по сайту. І в цій статті я знову хочу звернутися до нього і розповісти як реалізувати пошук використовуючи зв'язку AJAX + PHP + MySQL.







Тобто на цей раз я не буду користуватися послугами сторонніх сервісів, а покажу як це можна реалізувати самостійно, використовуючи лише тільки те, чим ми володіємо. А саме: cервер PHP і сервер MySQL з розгорнутою на ньому базою даних в якій зберігається иформация про сайті.

А зв'язати все воєдино - передачу пошукового запиту серверу і видачу інформації по ньому в браузер після обробки, допоможе технологія AJAX.

Реалізовувати пошук, по моїм задумом, ми будемо за допомогою AJAX (клієнтська частина) і PHP + MySQL (серверна частина)

Цілі визначені, давайте тепер розробимо алгоритм наших дій

Сформулюємо спочатку завдання:

Скрипт PHP отримує від сервера MySQL відповідь з результатами пошуку в базі даних. генерує HTML з пошуковою видачею і AJAX - ом передає його клієнту (браузеру). після чого він відображається на екрані.

У сьогоднішній статті я розгляну зв'язку PHP + MySQL і покажу як як організувати простий висновок знайденої інформації в браузер. А вже в статті "Пошук по сайту AJAX + PHP + MySQL (AJAX)" я розгляну як "прикрутити" до всього цього AJAX оптимізувавши тим самим висновок пошукової інформації користувачеві.

І так, приступимо

Для наочності я вирішив об'єднати весь код в один файл. Але ви повинні врахувати, що якщо інтеграція коду HTML і PHP справа в загальному звичайне, то об'єднання в один файл конфігураційних налаштувань підключення до бази даних, допоміжних функцій PHP і безпосередньо самого виконуваного скрипта PHP в один файл справа неприпустима, і що звичайно правильніше розносити їх по окремих файлів. Так би мовити мухи окремо, котлети окремо.

Для початку ось вам код, який у мене вийшов:

Насамперед створимо форму пошуку. яка відправляє пошуковий запит серверу:

А ось на скрипті відповідає за з'єднання з базою даних MYSQL і виконанням запиту до бази хочу зупиниться трохи детальніше

Спочатку йде блок коду в якому започатковано параметри для підключення до бази даних і створюється саме підключення - функція connectDB (). а також функція closeDB () - яка закриває з'єднання з базою даних. Природно, що дані назв таблиць. обираних з таблиць параметрів. пароля для підключення до бази даних і ім'я самої бази даних потрібно задати власні.







А далі ми підійшли до основної функції search () в якій відбувається вся основна робота, і в яку передається параметр для обробки - рядок запиту $ query.

Спочатку фільтруємо рядок запиту обрізаючи прогалини і керуючі символи trim (). екрануючи спеціальні символи mysql_real_escape_string (). щоб запит став безпечним для бази даних. Настійно рекомендую проводити таку обробку. так як будь-яка форма на Вашому сайті - це потенційна вразливість, образно кажучи "чорний вхід" для зловмисників. Адже ви ж не збираєтеся залишити його відкритим?

Далі переходимо безпосередньо до пошукового запиту Спочатку перевіримо не порожній! Empty () чи прийшов пошуковий запит?

Якщо черга порожня, то повертаємо відповідне повідомлення користувачу. Якщо перевірка пройдена, перевіряємо його на розмір.

Нас не цікавлять запити коротше 4 або довше 128 символів. Запит не задовольняє нашим вимогам - знову виводимо відповідні повідомлення для користувача. Ну а якщо все добре, виконуємо запит до бази даних.

А ось з цього місця детальніше.
Спочатку в строкової змінної $ sql формуємо рядок запиту. C допомогою оператора SELECT. який робить вибірку ідентифікатора сторінки (id), її заголовка (title), опису (description) і посилання на сторінку (link), вибираємо з таблиці (FROM table_name) значення полів де (WHERE) в будь-якому місці заголовка або опису міститься наш пошуковий запит ( `description` LIKE '% $ query%' OR` title` LIKE '% $ query%').

Якщо знайти нічого не вдалося - виводимо про це повідомлення користувачу. Якщо запит повернув хоча б один запис, формуємо в циклі (DO WHILE) особливістю якого є, що він виконується принаймні один раз, рядок відповіді сервера клієнтові з результатами пошукової видачі. Природно, що якщо запит до бази повернув не одну, а кілька записів, то всі вони в циклі методом конкатенації "пристикують" до нашого результату.

Ну і в кінці роботи функції повертаємо в головний скрипт результат.


Ну а далі йде блок коду, який по ідеї повинен бути окремим файлом search.php. і в якому підключаються всі наші функції

Як вам скріптец? Чи не вразив розмірами? А адже саме від нього все і залежить. Розберемо його роботу.

Спочатку він перевіряє чи існує isset () і не порожній чи! Empty () прийдешній нам методом POST [ 'query'] запит від клієнта (браузера). Якщо все OK. відкриваємо з'єднання з базою даних Mysql і викликаємо нашу функцію search (). в яку передаємо пошуковий запит.

Наступний рядок виводить відповідь від сервера яким би він не був.

Ну і звичайно, не забуваємо закрити з'єднання з базою даних. передаючи йому дескриптор з'єднання - $ connect. після закінчення роботи.

Найпростіший пошук по сайту з використанням PHP і MySQL готовий. Звичайно ви можете модернізувати його на свій розсуд.

А в статті "Пошук по сайту AJAX + PHP + MySQL (AJAX)" я покажу як розширити скрипт php і підключити підключити до них AJAX А на сьогодні у мене все. А якщо у вас виникли питання - будь ласка задавайте. До побачення і сподіваюся на швидку зустріч.







Схожі статті