ajax example

Как сделать поиск по нескольким полям?

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

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

Например несколько полей:
sphere | position | city

Несколько записей:
Государственная служба | Председатель | Москва
Информационные технологии и Интернет | Веб-разработчик | Новороссийск
Юриспунденция | Юрист | Екатеринбург

Для поиска имеется один инпут:

input type='text' name='search' size='20' maxlength='255'>

И поиск должен идти по все полям без разницы в каком порядке будут вводить слова. Например:

Председатель(найдет первую запись)
Новвороссийск Веб-разработчик(найдет вторую)
Юрист(найдет третью)
Интернет(найдет вторую)

У меня выходили запросы только такого вида:

SELECT * FROM `vacancies` WHERE `view` = '1' AND `viewdate` >= '". strtotime('now') ."' AND `position` LIKE '%$search%'

$search это просто строка из input. Обработаная mysql_real_escape_string и htmlspecialchars.

Как иначе сделать не знаю.

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

Поиск по нескольким полям в БД
у меня не получается реализовать поиск по нескольким полям в бд $result = mysql_query ("SELECT.

Поиск по нескольким полям
Ребята помогите или хотя бы натолкните на мысль , как написать поиск по базе данных, поиск нужен.

Поиск по нескольким полям
Подскажите, пожалуйста, как правильно организовать поиск в бд по нескольким полям? Есть форма, в.

Эксперт HTML/CSSЭксперт PHP

Where `field1`='$search' OR `field2`='$search' OR `field3`='$search'

KOPOJI, ваш вариант приводит к полному поиску строки в полях. Например если будет написано «бла бла бла» или «бла » или «бал» а в поле «бла», то это уже не верно.

Вот запись — Информационные технологии и Интернет | Веб-разработчик | Новороссийск

Мне надо найти точно её по строке: «информационные технологии и интернет веб-разработчик новороссийкс» или «веб-разработчик интернет новороссийкс» или «веб-разработчик».

Эксперт HTML/CSSЭксперт PHP

ну неужели так сложно поменять знак равно на LIKE c % ?

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

Where `field1` LIKE '%".$search."%' OR `field2` LIKE '%".$search."%' OR `field3` LIKE '%".$search."%'

KOPOJI, ну неужели так сложно поменять знак равно на LIKE c % ? Не сложно если знать что это такое. Вам же написал ТС что он «искал информацию». А как можно искать то не зная что?:) Например незная ситаксиса слк запросов. Наберут.. дальше Вы в курсе

ЦитатаСообщение от pyramida Посмотреть сообщение

Не по теме:
KOPOJI, ну неужели так сложно поменять знак равно на LIKE c % ? Не сложно если знать что это такое. Вам же написал ТС что он «искал информацию». А как можно искать то не зная что? Например незная ситаксиса слк запросов. Наберут.. дальше Вы в курсе

ЦитатаСообщение от Destank Посмотреть сообщение

ЦитатаСообщение от Maksimchikfull Посмотреть сообщение

Поиск по нескольким полям
Подскажите, хочу реализовать запрос поиска по нескольким полям написал пока это $result =.

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

Как сделать поиск в МуСКЛе через ПХП по неск полям?
Здравствуйте все! у меня тут такая проблема. Нужно организовать поиск по БД МуСКЛ через.

Поиск по нескольким полям
Всем привет! Подскажите пожалуйста, как организовать поиск по нескольким полям. Причем может.

Поиск по нескольким полям
авм Добавлено через 6 минут Если не ввести временной интервал отказывается искать в БД Кто.

Поиск по нескольким полям
У меня есть одна таблица, в которой 7 полей. Необходимо реализовать поиск по одному или нескольким.

Источник

PHP MySQL search database and display results

PHP MySQL search database and display results

Hi friends, in this tutorial you will learn how to perform a PHP MySQL search database and display results in a step-by-step process from scratch. We must know that database searching is very useful in any kind of application or in any dynamic website. Therefore, we can do this with the help of a PHP script and get the desired results based on the search input from HTML forms.

Steps to perform PHP MySQL search database and display results

Step 1:- Create a database in PHP Myadmin as shown in the below screenshot.

PHP MySQL search database and display results

Step 2:- Create a table in the database as shown in the below screenshot.

PHP MySQL search database and display results

Step 3:- Insert data in the table.

In this step, we will insert some data with the help of an SQL query so that we can search from these data and show the results later as shown below

PHP MySQL search database and display results

Query example for inserting data:- INSERT INTO employee_info (id, name, phone_no, age, department, created_at, updated_at) VALUES (NULL, 'ABC', '1234567891', '25', 'IT', current_timestamp(), '0000-00-00 00:00:00.000000');

Now, you can see the inserted data as shown below

PHP MySQL search database and display results

Step 4:- Create a PHP file and Make an HTML form

PHP MySQL search database and display results

In this step, we will create an HTML form with a search element so that we can enter the search input as shown below

Step 5:- Create a PHP file and establish the database connection as shown below

coonnect_test_db.php:-

setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //echo 'connected'; > catch(PDOException $e) < echo '
'.$e->getMessage(); > ?>

Step 6:- Write a PHP script based on the search input.

prepare("select * from employee_info where department like '%$search%' or name like '%$search%'"); $stmt->execute(); $employee_details = $stmt->fetchAll(PDO::FETCH_ASSOC); > else < $searchErr = "Please enter the information"; >> ?>

Below are the two examples of searching data from the database

  • If the search input is matched with the column value and the column has the single value then it will return the single row as shown in the below screenshot.

PHP MySQL search database and display results

  • If the search input is matched with the column value and the column has more than one value then it will return multiple rows as shown in the below screenshot.

PHP MySQL search database and display results

Complete Code:- phpsearch.php

prepare("select * from employee_info where department like '%$search%' or name like '%$search%'"); $stmt->execute(); $employee_details = $stmt->fetchAll(PDO::FETCH_ASSOC); //print_r($employee_details); > else < $searchErr = "Please enter the information"; >> ?>      .container 


Search Employee Information::
Submit
*


Search Result


# Employee Name Phone No Age Department No data found'; > else< foreach($employee_details as $key=>$value) < ?> > ?>

Download the bootstrap CSS and js files from google and include the path of the files in the href attribute of link tag and src attribute of the script tag respectively.

CONCLUSION:- I hope this article will help you to understand the concept. If you have any doubt then please leave your comment below.

Источник

Поиск похожих текстов в базе данных MySQL + PHP

Поиск похожих текстов в базе данных MySQL + PHP

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

function get_minification_array($text) < // Удаление экранированных спецсимволов $text = stripslashes($text); // Преобразование мнемоник $text = html_entity_decode($text); $text = htmlspecialchars_decode($text, ENT_QUOTES); // Удаление html тегов $text = strip_tags($text); // Все в нижний регистр $text = mb_strtolower($text); // Удаление лишних символов $text = str_ireplace('ё', 'е', $text); $text = mb_eregi_replace("[^a-zа-яй0-9 ]", ' ', $text); // Удаление двойных пробелов $text = mb_ereg_replace('[ ]+', ' ', $text); // Преобразование текста в массив $words = explode(' ', $text); // Удаление дубликатов $words = array_unique($words); // Удаление предлогов и союзов $array = array( 'без', 'близ', 'в', 'во', 'вместо', 'вне', 'для', 'до', 'за', 'и', 'из', 'изо', 'из', 'за', 'под', 'к', 'ко', 'кроме', 'между', 'на', 'над', 'о', 'об', 'обо', 'от', 'ото', 'перед', 'передо', 'пред', 'предо', 'по', 'под', 'подо', 'при', 'про', 'ради', 'с', 'со', 'сквозь', 'среди', 'у', 'через', 'но', 'или', 'по' ); $words = array_diff($words, $array); // Удаление пустых значений в массиве $words = array_diff($words, array('')); return $words; >

Пример работы функции:

$array = get_minification_array(' 

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

'); print_r($array);

Результат:

Array ( [0] => сегодня [1] => существует [2] => огромное [3] => множество [4] => разнообразных [5] => диет [6] => отличающихся [7] => степенью [8] => строгости [10] => результатами [11] => которых [13] => их [14] => помощью [15] => добиваются [16] => худеющие [18] => одна [19] => эффективная [20] => диета [21] => творог [22] => яблоки [23] => которая [24] => позволит [25] => легко [26] => скинуть [27] => 4 [28] => кг [31] => дня )

Теперь, нужно получить проверяемую статью и сверить с остальными. В примере используется таблица `articles` , с полями `id` , `name` , `text` :

Пример таблицы со статьями

Поиск будет осуществляется для статьи `id` = 1 , причём для теста в базе есть копия этой статьи с немного измененным текстом.

// Подключение к БД $dbh = new PDO('mysql:dbname=db_name;host=localhost', 'логин', 'пароль'); // Получаем статью $sth = $dbh->prepare("SELECT * FROM `articles` WHERE `id` = 1"); $sth->execute(array()); $article = $sth->fetch(PDO::FETCH_ASSOC); // Получаем для неё массив слов $text = get_minification_array($article['name'] . ' ' . $article['text']); $count = count($text); $out = array(); // Проход по всем статьям в таблице $sth = $dbh->prepare("SELECT * FROM `articles`"); $sth->execute(); $list = $sth->fetchAll(PDO::FETCH_ASSOC); foreach($list as $row) < $verifiable = get_minification_array($row['name'] . ' ' . $row['text']); $similar_counter = 0; foreach ($text as $text_row) < foreach ($verifiable as $verifiable_row)< if($text_row == $verifiable_row) < $similar_counter++; break; >> > $out[$row['name']] = $similar_counter * 100 / $count; > // Сортировка результатов и ограничение до 15шт arsort($out); $out = array_slice($out, 0, 15, true); print_r($out);

Результат поиска:

Array ( [Диета на яблоках и твороге] => 100 [Диета на яблоках и твороге (test)] => 97,368421052632 [Диета Ларисы Гузеевой] => 21,052631578947 [Как похудеть в лице] => 19,736842105263 [Соевый соус: польза и вред] => 17,105263157895 [Сырная диета] => 14,473684210526 [Какую обувь выбрать для сильных морозов?] => 13,157894736842 [Какие мышцы работают на эллиптическом тренажере?] => 10,526315789474 [Боль в коленном суставе при нагрузке] => 9,2105263157895 [Польза и вред дыни для организма человека] => 9,2105263157895 [Разгрузочная диета после праздников] => 9,2105263157895 [Вредно ли загорать на солнце?] => 7,8947368421053 [Йогуртовая диета] => 7,8947368421053 [Как стирать пуховое одеяло?] => 7,8947368421053 [Какие витамины в укропе] => 6,5789473684211 )

В результате видно, что статья схожа сама с собой на 100%, с тестовой статьей на 97%, с остальными не более 21%.

Источник

Читайте также:  How to activate env python
Оцените статью