Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
52 / 3 / 4
Регистрация: 27.02.2016
Сообщений: 277

Поиск в sql

25.06.2017, 18:46. Показов 2243. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Подскажите решение.

Есть запрос:
PHP
1
$sql = mysql_query ("SELECT * FROM  products WHERE keywords like '%$keywords%'");
В $keywords допустим содержится фраза "удаляет загрязнения"
В результате будут выводится поля, где есть точное соответствие и последовательность фразы, но если будет после с текстом
"Данное средство удаляет самые стойкие загрязнения" то выводиться оно не будет.

Какой метод использовать?

И еще подскажите, как сделать так, чтобы поиск был по совпадению первых 3-4 букв в запросе, если так можно выразиться, или по корню слова.
Т.е. если ввести слово "профессиональный", то выводиться будет поле, где есть слово "профессиональному", "профессиональные".

Заранее спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2017, 18:46
Ответы с готовыми решениями:

Поиск по БД SQL
Есть датагривью с таблицеq, есть текстбокс. Подскажите, как можно реализовать поиск по столбцу Id типа int, чтоб я вводил id в текстбокс, а...

Поиск ms sql
комрады, создаю на C# приложение для БД на ms sql server, Через запрос вида Where LIKE ' А%' (вывод с начальным по А) удаётся выполнять. А...

SQL поиск
Всем привет. Как произвети поиск по БД, используя ADOQuery, SQL-запросы. На форме есть текстовое поле для ввода текста поиска, и...

4
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
25.06.2017, 19:04
PHP
1
2
3
4
5
$s = 'удаляет загрязнения';
$m = explode(' ',$s);
$l = array();
foreach ($m as $s) $l[] = '`keywords` like \'%'.$s.'%\'';
$sql = mysql_query ("SELECT * FROM  products WHERE ".implode(' AND ',$l));
Добавлено через 6 минут
Возможно существует сервис, определяющий корень слова по слову
Можно попробовать установить сфинкс или яндекс.сервер
0
52 / 3 / 4
Регистрация: 27.02.2016
Сообщений: 277
25.06.2017, 19:27  [ТС]
Отлично работает. У меня еще подсветка ключевых фраз идет таким запросом:
PHP
1
preg_replace('/('.$keywords.')/iu','<b style="color:red;">\1</b>',$result['opisanie']);
Здесь идет подсветка красным только если запрос совпадает точно, а если слова в разных местах текста то нет.
Как подсветить оба слова из запроса, если они врозь?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
25.06.2017, 19:54
Лучший ответ Сообщение было отмечено samvel4000 как решение

Решение

PHP
1
2
3
4
5
6
7
8
<?php
$s = 'удаляет загрязнения';
$s = str_replace(' ','|',$s);
function podsvetit($q) {
        return '<b style="color:red;">'.$q[0].'</b>';
}
$t = 'Данное средство удаляет самые стойкие загрязнения. Данное средство удаляет самые стойкие загрязнения.';
echo $t = preg_replace_callback('/('.$s.')/','podsvetit',$t);
1
52 / 3 / 4
Регистрация: 27.02.2016
Сообщений: 277
25.06.2017, 19:55  [ТС]
Как часы. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2017, 19:55
Помогаю со студенческими работами здесь

Поиск по БД SQL
Доброго! Имеем таблицу в бд Если строим поиск так Form1-&gt;ADOQuery1-&gt;Close(); Form1-&gt;ADOQuery1-&gt;SQL-&gt;Clear(); ...

Поиск sql
Цель вывести из базы информацию где найденно первые несколько символов из поле. пишу mysql_query(&quot;SELECT `title` FROM `obev` WHERE...

поиск по БД PHP+sql
Доброго времени суток! у меня такой вопрос. Есть код для поиска номера телефона по базе. Он ищет если забиваешь номер без пробелов. ...

Поиск SQL серверов
Подобный вопрос уже был. Ответы мне не очень понравились, поэтому задаю еще раз но с уточнением, может кто-нибудь сможет помочь... ...

Поиск с использованием SQL
Помогите пожалуйста, не могу додумать как организовать поиск по нескольким полям в бд. procedure TForm3.Edit1KeyUp(Sender: TObject;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru