Sdscompany.ru

Компьютерный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать поиск по сайту php

Поиск по контенту сайта php примеры

Поиск по сайту, поиск по файлам и вообще будем искать на сайте. Давно хотел сделать такую тему, как поиски внутри сайта, внутри файлов. В общем сделать рабочий скрипт поиска по сайту.

В самом начале давайте разберемся, где будем искать. Будем искать не только в файлах, но и сделаем поиск по базе данных.

Поиск по сайту php

  1. Алгоритм поиска по сайту
  2. Поиск по контенту сайта -> база данных
  3. Поиск по контенту сайта -> файлы ->DW — search 1.2
  4. Скрипт в сборе поиск по сайту
  5. Рабочий вариант скрипта поиска по сайту по файлам пример
  6. Поиск по контенту сайта -> файлы вариант 2
  7. Скачать можно здесь

    Алгоритм поиска по сайту

    Поиск по контенту сайта -> база данных

    Нам понадобится столбец, в котором записан контент страницы в базе данных, применяем поиск к строке отвечающей за контент -> substr_count

    $row[«ID»] — это как пример, если требуется ссылка. то нужен столбец отвечающий за ссылку

    if(@substr_count($row[«столбец отвечающий за контент»], $poisk) and $poisk)

    $result = «найдено в контенте страницы» . $row[«ID»];];

    Для отправки запроса вам понадобится форма отправки:

    Поиск по контенту сайта -> файлы DW — search 1.2

    Если мы говорим о поиске по контенту на сайте, который сделан на файлах, то первое с чем мы сталкиваемся, против базы данных, как получить все ссылки на все файлы!?

    Другими словами, где у вас есть все ссылки вашего сайта!? Может в карте sitemap.XML — нам нужно извлечь все ссылки из данного файла, а потом в цикле проверить наличие искомого слова.
    Да! И функцию my_strtolower можете заменить на обычную strtolower(если она у вас работает)
    Теперь не нужно вставлять домен, он будет автоматически передаваться в переменную!

    + Получим в переменную $poisk от правленный поисковый запрос.

    + все буквы приведем к нижнему регистру my_strtolower

    $poisk = my_strtolower( $poisk );

    Теперь весь контент страницы полученный в цикле через file_get_contents переведем в нижний регистр — my_strtolower и внутри получим путь на сревре заменив домен на $home

    Далее собственно поиск искомого слова в контенте substr_count

    + если что-то найдено, то создаем счетчик +1($line_count)

    + заносим в переменную $rezult адрес страницы, где это было найдено.

    $new = my_strtolower( file_get_contents( str_replace( $domen , $home , $ALL_PAGES[$i]) ) );

    if (substr_count($new, $poisk))

    Далее особо ничего интересного. форма + вывод полученных данных.

    Скрипт DW — search 1.2 в сборе поиск по сайту

    Живой пример поиска DW — search 1.2

    Теперь мы создадим страницу и туда поместим выше приведенный скрипт поиска по сайту:

    Поиск по контенту сайта -> файлы вариант 2

    Второй вариант поиска, как реализован выше приведенный скрипт поиска по сайту по файлам. У нас есть база данных на файлах, новая строка — краткая информация о странице.

    Если вывести все ссылки из этой базы, то мы получим : все ссылки — это мы применяли, как пример поиска по заголовкам .

    И собственно, где мы получали внутри цикла данные из адреса(file_get_contents) — здесь получаем абсолютно аналогично! Единственно, что в этой же строке мы имеем заголовок страницы.

    Именно этот поиск вы сможете протестировать, нажав кнопку лупы сверху сайта в меню справа.

Вас может еще заинтересовать список тем : #PHP | #PHP_FUNCTION | #SEARCH |

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…)

Разрабатываем функционал поиска по сайту на PHP и MySQL

Одна из самых популярных и необходимых функций на любом сайте – это поиск, реализованный с помощью специальной формы. Этот функционал позволяет посетителям быстро находить на сайте интересующий их контент.

Сегодня мы хотим рассказать, как сделать поиск по сайту с помощью специальной формы, которая будет опрашивать таблицы базы данных и выводить информацию о текущих руководителях на сайте. Вы научитесь создавать таблицы базы данных, которая будет содержать в себе информацию о текущем персонале.

Разрабатывать формы поиска при помощи PHP , а также познакомитесь с SQL ( Structured Query Language ) – специальным языком для сбора, записи и модификации информации, содержащейся в базах данных. Перед тем как начать, рекомендуем вам скачать файлы проекта .

Что вам понадобится

  • Инструмент для работы с базами данных MySQL .
  • Локальный или удаленный сервер с поддержкой PHP .
  • Текстовый редактор.

Создаем базу данных

Если вы не совсем уверены, что сможете разобраться с базой данных на вашем хостинге, то свяжитесь с хостером для получения соответствующих инструкций или помощи. После того как база данных будет создана, вам нужно будет подключить ее, создать таблицу и записать в нее необходимые данные.

Самым популярным инструментом для управления MySQL является PHP My Admin , Этого инструмента будет достаточно для нашего сегодняшнего руководства.

Создание таблицы

Наша таблица должна быть создана в следующем формате:

Таблица базы данных состоит из столбцов и строк, как в Excel . Первый столбец позволяет идентифицировать данные по имени. Далее идет колонка Data types ( тип данных ), которая указывает нам на тип данных, содержащихся в колонке. В поле Length ( Длина ) указывается максимальный объем памяти ( хранилища ) для столбца таблицы. Мы используем переменные, которые дают больше гибкости. Другими словами, если длина ФИО меньше 50 символов, то будет занята лишь часть отведенного места.

И среди данных персонала не может быть пустых значений ( null, empty ). Первая строка выделена желтым цветом, потому что столбец ID – наш основной ключ. Основной ключ в базе данных гарантирует, что каждая запись будет уникальной. К этой колонке также применен автоинкремент, а это значит, что каждой записи в нашей базе данных будет присваиваться уникальный номер автоматически.

Вносим представителей персонала в таблицу

Как только разберетесь с таблицей, начните заполнять ее данными. 6 записей вполне достаточно, чтобы закрепить в уме процедуру. Ниже предлагаю вам собственный пример:

Разработка формы

Чтобы создать форму поиска по сайту через Google , откройте любой подходящий текстовый редактор. Я рекомендую воспользоваться бесплатным PSPad . Вы можете использовать любой текстовый редактор, где предусмотрена подсветка синтаксиса. Это в значительной степени облегчит процесс написания и отладки PHP-кода . Создавая страницу для формы поиска, не забудьте сохранить ее в формате .php , иначе PHP-код не будет обрабатываться должным образом. Как только сохраните документ, скопируйте в него следующую разметку:

Если вы знакомы с языком HTML , то тут вам все должно быть понятно как минимум до открывающего тега form . Внутри этого тега находится важнейший элемент всего кода – атрибут action . В качестве действия нашей формы мы указали название нашего файла, а затем применили к нему строку запроса “ go ”.

Проверка на соответствие критерию

Когда пользователь вводит имя или фамилию, а затем нажимает кнопку подтверждения, форма передает данные самой себе и добавляет в конце строку запроса “ go ”. На данном этапе мы проверяем наличие строки запроса go . Если результат положительный, выводим результаты поиска.

До вывода запрашиваемых результатов нам нужно перепроверить: (1) была ли подтверждена форма, (2) содержит ли строка запроса значение go, (3) был ли поисковой запрос введен в нижнем или верхнем регистре? Если ни одна из проверок не дает положительного результата ( true ), то от нас не требуется выполнять какие-либо действия.

Для начала добавим небольшой блок кода PHP поиск по сайту после закрывающего тега :

Сначала мы открываем блок PHP-кода тегом ””.

Любой PHP-код внутри этой пары тегов будет исполняться сервером. Затем мы проверяем, была ли подтверждена форма:

Мы воспользуемся встроенной функцией isset , которая возвращает значение типа bool , и поместим в нее массив $_POST . Логическое выражение в программировании позволяет получить нам либо true , либо false .

Следовательно, если функция возвращает значение true , то форма была подтверждена, и нам нужно продолжить выполнение кода дальше. Если же функция возвращает значение false , то мы выведем сообщение об ошибке. Сохраните весь набранный код в файле search_submit.php .

Далее нам нужно проверить, имеется ли в строке запроса значение go :

Мы вкладываем еще одно условное логическое выражение внутрь основного, но только в этот раз мы используем массив $_GET вместе со значением “ go ”. Сохраните изменения в файле search_go.php .

Теперь нам нужно убедиться, что посетители могут вводить первую букву в строку запроса только в верхнем или только в нижнем регистре. Нам также нужно предусмотреть способ учета критериев поиска, введенных посетителем. Лучше всего проверять введенные посетителем данные с помощью регулярного выражения:

Мы вкладываем еще одно условное логическое выражение внутрь наших двух. На этот раз мы используем регулярное выражение для проверки ввода. Мы используем встроенную функцию preg_match с двумя параметрами: регулярное выражение, и поле формы, к которому должна применяться проверка.

В нашем случае, это будет поле « Имя » ( name ). Чтобы извлечь параметры поиска, указанные посетителем, мы создаем переменную $name, и привязываем к ней значение POST с названием поля из формы, которое будет использоваться в SQL-запросе . Сейчас мы реализовали: (1) отправку данных формы, (2) строка запроса включает значение go и (3) посетитель ввел либо заглавную, либо строчную первую букву. И все эти проверки происходят еще до внесения изменений в базу данных. Сохраните все изменения.

Результаты Connect, Select, Query и Return из таблицы базы данных

Чтобы получить данные из таблицы, сначала в скрипте поиска по сайту нужно подключиться к серверу. Для этого мы используем следующий код:

Мы создаем переменную $db , и привязываем ее к встроенной функции MySQL mysql_connect , которая принимает три параметра: сервер с базой данных ( localhost , если вы работаете локально ), логин и пароль.

После этого мы запускаем встроенную PHP-функцию die , которая останавливает дальнейшее выполнение кода, если нет соединения с базой данных. И выводим информацию об ошибке, запуская встроенную функцию MySQL mysql_error , которая вернет причину ошибки. Сохраните файл search_connectdb.php .

Далее при помощи представленного ниже кода, мы выбираем, какую базу данных использовать:

Создаем переменную под названием mydb и привязываем ее ко встроенной MySQL-функции mysql_select_db , а затем указываем название базы данных, которую создали ранее. Далее мы опрашиваем таблицу базы данных при помощи SQL-запроса с переменной name, в которой содержатся параметры поиска, введенные посетителем:

При опросе таблицы базы данных мы создаем переменную $sql , и привязываем ее к строке, содержащей SQL-запрос . Мы используем оператор SELECT для извлечения значений из столбцов id , а также имени и фамилии из таблицы contacts . Затем мы используем инструкцию WHERE вместе со значениями имени и фамилии, чтобы сузить поиск.

Вместе с оператором LIKE мы используем знак процента (%) – спецсимвол, который возвращает 0 и более знаков, а также переменную name из строки поиска. В результате LIKE ( в сочетании со спецсимволом ) находит любое соответствующее имя в таблице базы данных. Можно описать весь процесс следующим образом: « Мы выбираем имя и фамилию из таблицы contacts , которые соответствуют введенным посетителем ». Сохраните файл search_query.php .

Далее нам нужно поместить результаты SQL-запроса в переменную, и запустить ее при помощи функции mysql_query , как показано ниже:

Мы создаем переменную $result , и присваиваем ей значение функции mysql_query () , внося ее в $query. Теперь наш запрос хранится в переменной result . Чтобы вывести результат в PHP , мы создаем цикл, а затем выводим данные в неупорядоченном списке:

Сначала мы создаем цикл while , внутри него создаем переменную под названием row , и инициализируем ее возвращаемым значением функции mysql_fetch_array , которая принимает переменную result , в которой находится наш SQL-запрос . Внутри цикла while мы присваиваем каждому значению столбца значение переменной с идентичным названием. Затем мы выводим значения внутрь неупорядоченного списка.

Здесь важно обратить внимание на два момента: (1) внутри цикла while не нужно присваивать значения переменным массива row , так как значения можно брать напрямую из массива row ; (2) тег anchor , который мы используем в названии нашего файла вместе с id и основным ключом. Причина этого заключается в том, что во многих поисковых элементах изначально ничего не отображается.

Так как мы показываем только имя и фамилию, приписывая ID в конце нашего тега anchor , то мы можем использовать ID для дополнительного запроса, который позволит вывести дополнительную информацию о персонале. Сохраните файл и протестируйте форму PHP поиска по сайту ( search_display.php ).

Убираем табуляцию

Результаты выводятся в виде неупорядоченного списка, но суть в том, что нам не нужна табуляция. Чтобы избавиться от нее, добавьте следующее CSS-правило в самое начало вашего файла в head :

Поиск по буквам

Для реализации поиска по буквам потребуется лишь несколько дополнительных строк кода. Добавим этот удобный функционал для посетителей. Таким образом, они смогут находить представителей персонала по буквам, которые содержатся в имени или фамилии.

Добавьте следующую строку кода после закрывающего тега form :

Здесь мы изменили четыре фрагмента кода скрипта поиска по сайту:

  • Мы используем функцию isset() , и вносим в нее массив $_GET , а затем проверяем значение by ;
  • Создаем переменную $letter и инициализируем ее значение массивом $_GET ;
  • Добавляем переменную letter в SQL-запрос ;
  • Указываем переменную letter внутри выражения, в котором получаем подсчитанное количество строк.

Сохраните файл search_byletter.php и проверьте результат.

Поиск определенного сотрудника

Чтобы отобразить информацию об остальном персонале, которая передается через уникальное id внутри нашей ссылки, нужно добавить следующий код прямо после закрывающей фигурной скобки в скрипте letter , как показано ниже:

Здесь мы изменили четыре фрагмента кода:

  • Мы используем функцию isset() , и с ее помощью проверяем значение ID в массиве $_GET ;
  • Создаем переменную $contactid и инициализируем ее массивом $_GET ;
  • В таблице выделяем все, что отмечено звездочкой * . Звездочка – это сокращенное обозначение в SQL , которое означает « дайте мне все столбцы и строки из таблицы» . Чтобы определить, какую информацию выводить, мы упоминаем переменную contactid в конце SQL-выражения ;
  • Выводим дополнительную информацию о каждом представителе персонала.

Сохраните файл search_byid.php и проверьте результат.

Обратите внимание, что наш функционал работает так, как и положено. При вводе имени или фамилии в поле, или при выборе буквы в качестве гиперссылки, отображаются только имена представителей персонала. Если навести курсор на ссылку, то в строке статуса можно увидеть уникальный ID . Если кликнуть по конкретному человеку, то адресная строка изменится, и отобразится дополнительная информация об этом сотруднике.

SQL-инъекция

Причина, по которой мы добавили в наше поле поиска регулярное выражение, заключается в том, чтобы никто не смог вмешаться в наш SQL-запрос . Раньше эта проблема была распространена, и хакеры умудрялись проводить собственные SQL-запросы , манипулируя при этом вашим приложением. Например, если бы мы допустили возможность использовать апостроф в нашем поле, то хакер мог бы просто удалить базу данных, используя запрос:

Как уже было отмечено, регулярное выражение гарантирует, что в качестве первого символа посетитель может вводить лишь буквы в нижнем или верхнем регистре.

В завершение

В сегодняшней статье мы рассмотрели, как сделать поиск по сайту, а также:

  • Создавать базы данных и соответствующие таблицы;
  • Использовать инструменты для управления базами данных, создавать столбцы и вводить данные;
  • Разрабатывать формы поиска на основе PHP , которая умеет осуществлять проверку вводимых данных, наличия переменных в запросе, а также соединяться с базой данных и выводить результаты из таблицы;
  • Как защитить приложение и базу данных от SQL-инъекций .

Используя знания, полученные из этой статьи, вы сможете без труда модифицировать чужой код, а также при необходимости расширять функционал формы поиска.

Данная публикация представляет собой перевод статьи « How to Create a Search Feature with PHP and MySQL » , подготовленной дружной командой проекта Интернет-технологии.ру

Поиск по сайту

Надыбал готовое решение формы поиска по сайту с использованием БД.

Имеется файл search.php и в нем след. код (установлен в самом начале страницы до :

и далее в теге body установлена форма для поиска:

и после нее стоит еще один код для вывода результатов:

Поиск по сайту: не могу разобраться, как делать поиск по нескольким полям
поиск по одному полу осуществляется вот так: SELECT * from tablepart WHERE `marka` LIKE ‘%" .

Поиск по сайту
Здравствуйте! Проблема в том, что при введение любого слова в поиск, мне выводит каждый раз (хотя.

Поиск по сайту
Здрасте всем! Сделал сайт, сделал на нем форму поиска. А как сделать так, чтобы эта форма.

Поиск по сайту
Здравствуйте! Помогите пожалуйста сделать поиск по сайту. Таблица news. Три столбика: id.

нет, как раз таки код универсальный. единственное что в полях:

я вставил свои значения базы данных, т.е.:

И база данных у вас точ в точ?

Добавлено через 1 минуту
Советую, смотреть что прилетает в каждую переменную, сверху вниз. (следом за интерпретатором)

да все параметры БД теже.

Добавлено через 26 секунд

есть некие поля page_id, title, desc, title_link, category, uniq_id кот. проверяются.

только как и где их прописать, я не пойму.

p.s.: в программировании я полный ноль (на php особенно)

Ну и как же мы с вами будем код отлаживать и искать ошибку.

Добавлено через 57 секунд

есть переменная, сюда попадает результат от запроса к базе данных. Нужно проверить, что туда попало.

Добавлено через 44 секунды
А вообще, нужно хоть почитать основы PHP иначе ничего толком вы не сделаете!

Добавлено через 1 минуту

база создана! но в ней я таблицу не строил. т.к. видимо сам скрипт ее построит.

Добавлено через 49 секунд

Антон Терентьев, давайте так, вы прочтете книжку по PHP, MySQL, хотя бы азы, а потом мы с вами продолжим тему.

Дело в том, что даже если мы с вами и найдём ошибку, то потом будут опять вопросы. Вы согласны?!

Скажу ещё на вскидку, что скорее всего ошибка не в коде, а в том что вы не создали таблицу в БД, поэтому PHP ничего вам не находит.

Вы абсолютно правы, я ничего не создавал в БД.

Поможете составить таблицу?

для составления таблицы полагаю требуется три поля (как минимум) для поиска в базе. эти самые поля обозвать, как допустим:
page_id — идентификатор страницы с новостью (допустим адрес этой странички, например, news1.html)
title — текст в заголовке новости
desc — текст самой новости
title_link — ссылка на страницу с новостью
а поля category и uniq_id думаю можно вообще удалить.

теперь!
вот есть страница с новостью (пример):

— page_id
— «Открытие сайта» — заголовок (title)
— «Сегодня мы открылись! Поздравьте нас!» — текст новости (desc)
— news1.html — title_link (ссылка на страницу с новостью)

вот теперь как поэтапно по этим данным создать БД именно для этого примера?

Реализация поиска на сайте через PHP

У меня уже несколько раз просили написать статью о том, как реализовать поиск на сайте через PHP. Задача это непростая, я бы даже сказал — очень непростая, поскольку здесь имеется огромное количество нюансов и препятствий. В этой статье я разберу алгоритм поиска на сайте.

Давайте предположим, что на нашем сайте имеется множество различных материалов (статей, новостей, заметок и прочего). Всё это добро находится в базе данных. И наша задача — реализовать поиск на сайте. Простейший алгоритм следующий:

  1. Создать HTML-форму со строкой поиска, а также кнопкой «Submit«. В текстовое поле пользователи будут вводить поисковый запрос, а далее нажимать на кнопку.
  2. Получить поисковый запрос (как правило, передаваемый методом GET, но иногда применяют и POST), а также, в целях защиты от XSS, пропустить его через функцию htmlspecialchars().
  3. Сделать выборку из соответствующих таблицы (со статьями, новостями, заметками и прочим) тех записей, в которых содержится поисковый запрос. Показываю примерный SQL-запрос для таких случаев: SELECT * FROM articles WHERE `text_article` LIKE %search% Соответственно, вместо search подставляется строка поиска.
  4. Получив записи, в нужном виде выводим их, желательно, по релевантности. Я, например, сделал у себя на сайте так: где больше всего совпадений — та статья и релевантнее, следовательно, ставлю её первой. Скорее всего, Вам этот способ оценки релевантности тоже подойдёт.

Многие из Вас скажут, что ничего сложного здесь нет. И будут отчасти правы, однако, давайте разберём такой пример строки поиска: «ищу этот текст«. Встаёт вопрос: «А что, собственно, ищется?«. То ли ищется точное вхождение текста «ищу этот текст«. Или, быть может, ищется текст, где присутствуют все три слова, но которые могут следовать далеко не друг за другом. Или, возможно, ищется текст, где присутствует хотя бы одно из этих слов.

И вот здесь задача значительно усложняется. Можно сделать сложную систему синтаксиса (как в поисковых системах), например, ищется точное вхождение, если запрос задан в кавычках. А можно давать выбор пользователям, как именно они хотят проводить поиск (с помощью radio-кнопок). Таким образом, сделано у меня на сайте. Поэтому в предыдущий алгоритм добавляется ещё один пункт: составление SQL-запрос. Вот пример SQL-запроса, когда нужно вытащить все материалы, в которых имеется хотя бы одно слово из запроса «ищу этот текст«:

SELECT * FROM articles WHERE (`text_article` LIKE «%ищу%» OR `text_article` LIKE «%этот%» OR `text_article` LIKE «%текст%»)

Соответственно, в скрипте поиска Вы должны генерировать подобные SQL-запросы, посылать к базе данных, получать ответ и выводить его. Это всё ещё больше усложняется, если Вы выводите записи по релевантности, так как трудно сразу сказать, что должно быть релевантнее: 3 точных вхождения запроса, либо 10 вхождений частей запроса. У меня на сайте предпочтение всегда отдаётся точным вхожденияи, но этот момент уже достаточно спорен. Безусловно, это сложно, и если это Вы делаете в первый раз, то несколько часов Вы точно потратите. Надеюсь, что мой алгоритм реализации поиска на сайте через PHP Вам поможет.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Читать еще:  Поиск по базе данных mysql php

    Комментарии ( 56 ):

    Михаил а вместо text_article Что ставить? Это адрес столбца? И как потом выводить данные правильно, а то я уже много способов перепробовал, не могу сделать так как нужно.

    text_article — это поле, в котором содержится полный текст материала, по которому и ведётся поиск. Выводить надо через SQL-запросы, а, получив result_set, разобрать его на одномерные массивы, элементы которого выводятся уже через echo.

    Михаил а вот если поиск реализуется по таблице users и ищет он только например по колонке name а если человек начинает вводить и фамилию то поиск ступорится и все найти ничего естесственно не может, сейчас у меня завпрос такой : («SELECT * FROM `users` WHERE `name` LIKE ‘%<$user_get>%'»); Пробую сделать вроде бы понятно и логично вот так : («SELECT * FROM `users` WHERE `name` LIKE ‘%<$user_get>%’ AND `familia` LIKE ‘%<$user_get>%'»); Все ровно не хочет искать=((( ЧТо делаю не так Михаил?!

    А зачем фигурные скобки здесь: <$user_get>? Попробуйте так: LIKE ‘%$user_get%’

    Так разницы то нет, разве что в скорости выполнения, а вот не могу понять как обьеденить в поисковом запросе 2 колонки familia и name — вопрос=) Я не могу, что не так сделал?!

    Ваш запрос какой-то не логичный. Как может у человека совпадать имя И фамилия? Поэтому могу предположить, что надо вместо AND поставить OR.

    Хорошо а вот если пользователь будет вводить в строке поиска и имя и фамилию?! Как тогда ?!

    Тогда не будет и там, и там $user_get. А, во-вторых, Вам надо будет решать, как обрабатывать данные, то ли выводить те записи, где совпало и имя, и фамилия (AND), то ли, где хотя бы одно совпадение (OR). Либо (как у меня в поиске) право выбора: совпадение «и там, и там», либо «там или там».

    Читать еще:  Using html beginform

    А как тогда формировать запрос на совпадения и имени и фамилии?! Подскажите пожалуйста! Я впервые пишу поисковое ядро по 2м калонкам=( ПРи том что это все обрабатывается на аяксе без перезагрузке страницы=)

    Вы уже писали его, там где AND, только вместо $user_get должно быть что-то другое, в первом случае, имя, а в другом — фамилия.

    так в этом случае будет 2 строки поиска ведь?! А мне нужно чтоб все данные писались в одну поисковую строку!

    «SELECT * FROM `users` WHERE `name` LIKE ‘%<$user_name>%’ AND `familia` LIKE ‘%<$user_surname>%'» — где здесь 2 строки?

    ДА нет это то я сделал, а вот в самом поле ввода как оно должно распознаватся куда отнести это слово а куда это? К какому столбцу к имени или к фамилии?! у меня идет так xmlhttp.open(«GET», «getuser.php?name=» + str, true); xmlhttp.send(); за str берется 0е значение

    Значит, нужно добавить ещё одно поле, чтобы не только name=, но и &surname=

    Тогда как это реализованно например в том же контакте все в одной строке?!

    В одной строке, но с несколькими GET. /?a=5&b=7&c=10 — целых 3 параметра, и все в одной строке.

    ТАк все плывет бошка=) Спасибо вам! На сегодня думаю хватит работы=)

    Скрипт поиска по сайту

    Выставляю для ознакомления три варианта скрипта поиск по сайту на java, php и xml, любой из которых можно смело применить для любых ваших сайтов.

    Во всех вариантах скрипта поиска по сайту html отсутствует кнопка «Найти» и исключается перезагрузка страниц, где вывод результатов поиска происходит посредством ajax сразу на глазах посетителей.

    У каждого варианта поиска есть свои плюсы и недостатки, но в одном они все одинаковы: создали статью и сразу прописали сами результаты для поиска, потому как функционал скрипта построен на поиске из записанного, а не на поиске информации по всему вашему сайту.

    Читать еще:  Php if then

    И давайте рассмотрим все примеры подробно с пошаговыми действиями для установки каждого из них на сайт.

    Первый вариант поиска по сайту с БД.

    Этим вариантом поиска на сайте я успешно пользовался сам. Обработчик php запросов для поиска не очень сложный, где я не имея навыков программирования смог без особого труда внедрить картинки к выводу результатов в поиске.

    Ещё одним плюсом является подсветка найденных слов (букв) в результате поиска.

    Недостатком является один факт — если прописывать в таблице БД адрес страницы из другой категории, то есть к примеру вот так: cat/page.html то при переходе по этому адресу из результатов поиска браузер выдаёт ошибку. А связано это с тем, что обработчик экранирует подобные символы, то есть превращает в html сущности.

    Вы поймёте о чём речь, когда установите этот скрипт поиска и начнёте его опробовать в работе.

    Первый вариант скрипта поиска взаимодействует с Базой данных и давайте сразу приступим к её заполнению.

    Скачайте ниже архив со скриптом поиска для сайта и залейте всё содержимое на хостинг.
    Далее создайте БД с именем poisk_test и сравнение utf8_general_ci . После нажмите на созданную базу и в верхнем меню кликните кнопку SQL и в появившееся окно вставьте скопированный код из файла BD.sql и затем нажмите ОК .

    Всё, готово! Открывайте ваш сайт в браузере и проверяйте работу скрипта поиска по сайту, а уже после замените всё необходимое в таблице MySQL на своё.

    Скачать скрипт поиска по сайту 1-ый вариант

    Второй вариант поиска по сайту с БД.

    Во втором примере скрипт поиска работает так же от БД, как и в первом варианте, только здесь отсутствует подсветка в выдаче результатов.

    И к недостаткам можно отнести то, что при поиске на латинице, скрипт ищет совпадения в адресе ссылки, потому как в этом примере адресные ссылки полностью прописываются в БД.

    Для установки этого скрипта поиска по сайту сделайте такие же действия, как и в предыдущем примере, только файл search.php трогать уже не нужно.

    Скачать скрипт поиска по сайту 2-ой вариант

    Третий вариант поиска по сайту на xml без БД.

    Отличительной особенностью последнего примера поиска для сайта является тот факт, что он не использует Базу Данных, а работает по сайту на основе xml , в котором и прописываются все запросы для поиска на вашем сайте.

    Для его установки достаточно залить все файлы скрипта на сервер, поменять в том же файле links.xml на ваши поисковые запросы и поиск на сайте сразу будет функционировать в полном объёме.

    Скачать скрипт поиска по сайту 3-ий вариант

    Ссылка на основную публикацию
    Adblock
    detector