0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 62
MS SQL

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

09.12.2015, 08:10. Показов 1023. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru