Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
MS SQL

Реализация сложного поиска

09.12.2015, 08:10. Показов 1019. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть некоторая БД, в ней содержится информация (id, loginid, suranem, name, age, brand , color, phone_number, government_number, prace, sale, date), можно ли сделать так, чтобы в вводе в input () пример на картинке пишем фамилию, имя , марку и номер машины, он выводил результат при совпадении всех этих элементов?Если да, то подскажите пожалуйста как это можно реализовать
Миниатюры
Реализация сложного поиска  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2015, 08:10
Ответы с готовыми решениями:

Реализация сложного запроса
Добрый день. Существует таблица участников (users): Таблица1 id | event_a | event_b | promo | action 1 | 1 | 0 | | 1 2 | 1 |...

Макрос сложного поиска
всем доброго дня ! помогите пожалуйста организовать поиск в эксель посредством макроса ! выкладываю файл в котором сделал все что мог .....

Реализация поиска по сайту - переход по станицам с сохранением запроса поиска
Всем известно что все запросы пользователя в данном случае хранятся в _GET массиве. Проблема такова что когда пользователь ввел какие-то...

14
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 10:15
Если это одна таблица с набором полей, то пристрелить архитектора...Теоретически можно и по одному номеру найти, а уж если совпадений несколько, то уточнять по фамилии и т.д.
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 10:24  [ТС]
Это одна таблица, а как сделать поиск по вашей подсказке ?
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 10:30
Не совсем понял что за люди описаны в таблице, за что отвечает government_number? Разбить таблицу на две - люди, машины (как минимум). Если хотите все таки именно так, как показали, без отдельных инпутов. То потом придется разбивать строку по пробелу в массив и уже с массивом работать. Но придется думать, что если человек ввел например фамилию и номер только?
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 10:38  [ТС]
См. картинку , а если через explode делить текст на слова , а слова уже отправлять в запрос через like ? government_nubmber - это гос.номер машины
Миниатюры
Реализация сложного поиска  
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 10:49
Либо извращаться с LIKE либо если БД поддерживает MyIsam, то лучше реализовать понотекстовый индекс из требуемых ячеек
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 10:55  [ТС]
Поддерживает , т.е. создать один столбец с этими данными ?
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 11:05
Сложно объяснить вкратце, прочтите эту статьи например вопросы будут спрашивайте http://lifeexample.ru/razrabot... mysql.html
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 12:11  [ТС]
PHP
1
2
3
4
5
6
7
<?php 
include('bd.php');
$query =  mysql_query("SELECT * FROM main WHERE MATCH (`loginID`,`surname`,`name`,`brand`,`government_number`) AGAINST ('Toyota' IN BOOLEAN MODE)") 
or die(mysql_error());
$row = mysql_fetch_array($query);
print_r($row) or die(mysql_error());
?>
Все работает , но он возвращает только одну строку , как сделать чтобы все вывел где есть совпадение ?
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 12:26
Ну попробовать прогнать циклом)))
PHP
1
2
3
4
$query =  mysql_query("SELECT * FROM main WHERE MATCH (`loginID`,`surname`,`name`,`brand`,`government_number`) AGAINST ('Toyota' IN BOOLEAN MODE)");
while($row = mysql_fetch_assoc($query)) {
print_r($row);
}
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 16:31  [ТС]
А как сделать ,чтобы при поиске двух значений , выводил строку, в которой эти значение (оба значения) совпадают ?т.е. в одной строке есть оба значения
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 17:12
Если вы имеете ввиду Иванов Иван Toyota из примера выше то можно брать полученную строку, вставлять в начале и конце *, заменять пробелы на * и попробовать вставить эту строку в AGAINST. Не уверен, но попробуйте
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 17:58  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php 
include('bd.php');
 
echo $_POST['search_data'];
$search = $_POST['search_data'];
$chick = explode(" ", $search);
$query =  mysql_query("SELECT * FROM main WHERE MATCH (`loginID`,`surname`,`name`,`brand`,`government_number`) AGAINST ('%*$chick[0]**%$chick[1]**%$chick[2]*' IN BOOLEAN MODE)");
if ($query == true) 
{
while ($row = mysql_fetch_array($query)) 
{
print_r($row) or die(mysql_error());
echo "<br>";
}
}
?>
Вот так?
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
09.12.2015, 18:08
можно попроще и впереди идущий знак % не нужен
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
include('bd.php');
 
echo $_POST['search_data'];
$search = $_POST['search_data'];
$string = str_replace(' ', '*', $search);
$query =  mysql_query("SELECT * FROM main WHERE MATCH (`loginID`,`surname`,`name`,`brand`,`government_number`) AGAINST ('*$string*' IN BOOLEAN MODE)");
if ($query == true) 
{
while ($row = mysql_fetch_array($query)) 
{
print_r($row) or die(mysql_error());
echo "<br>";
}
}
Но повторюсь, не совсем уверен в этом методе)))
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
09.12.2015, 18:14  [ТС]
Все равно выводит , где есть хоть одно совпадения из предложенных слов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2015, 18:14
Помогаю со студенческими работами здесь

Реализация функции поиска нужной услуги по заданным критериям поиска.
Получил задание на тему ArrayList, не получается сделать целиком...Вот задание помогите кто чем сможет.Спасибо. Необходимо разработать...

Реализация поиска
Хотел сделать поиск по таблице поступления Вот код : begin help1:='%'+Form16.Edit1.Text+'%'; help2:=QuotedStr(help1); ...

Реализация дерева поиска
Мне крайне срочно необходимо реализовать дерево поиска на с++(чтобы пользователь сам вводил значения), я и сам конечно пытался сделать это,...

Реализация поиска коктейля
Как в ASP.NET MVC сделать так, чтобы в одной колонке из БД выводился список продуктов, потом из него добавлять продукты во вторую колонку и...

Реализация нечеткого поиска
Доброе время суток, Есть база MySQL в которой есть таблица catalog, в ней 5-ть полей: id, region, means, objects, brands Нужно...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 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