Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Реализация интерфейса универсального поиска по БД (https://javascript.ru/forum/misc/52625-realizaciya-interfejjsa-universalnogo-poiska-po-bd.html)

Gloft 27.12.2014 19:56

Реализация интерфейса универсального поиска по БД
 
Вложений: 1
День/вечер добрый!
Пытаюсь реализовать интерфейс универсального поиска по БД (количество полей поиска порядка 100). В прикрепленном файле скриншот того, что получается. Может кто уже реализовывал подобное и поделится опытом?
Интересует механизм формирования универсального запроса, точнее структура/ которую необходимо заполнять по мере работы с интерфейсом, чтобы потом с неё создать SQL запрос в БД. Что это за структура и как ее заполнять пока сам не придумал.

Хотелось бы спросить совета бывалых разработчиков. Может кто видел где подобное уже реализовано?

bes 27.12.2014 22:02

Цитата:

Сообщение от Gloft
День/вечер добрый!
Пытаюсь реализовать интерфейс универсального поиска по БД (количество полей поиска порядка 100). В прикрепленном файле скриншот того, что получается. Может кто уже реализовывал подобное и поделится опытом?
Интересует механизм формирования универсального запроса, точнее структура/ которую необходимо заполнять по мере работы с интерфейсом, чтобы потом с неё создать SQL запрос в БД. Что это за структура и как ее заполнять пока сам не придумал.

ты спрашиваешь как добавлять условия в текст запроса?

Яростный Меч 27.12.2014 22:19

Gloft,
Универсальный интерфейс поиска в БД - это, например, пхпмайадмин. Вдохновись им, и напиши бессмертное.

Gloft 27.12.2014 22:21

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

Gloft 27.12.2014 22:24

Цитата:

Сообщение от Яростный Меч (Сообщение 348600)
Gloft,
Универсальный интерфейс поиска в БД - это, например, пхпмайадмин. Вдохновись им, и напиши бессмертное.

Админку к БД я писать не собираюсь. Подобные вещи не рассчитаны на людей далеких от информационных технологий и тонкостей работы с БД.

bes 27.12.2014 22:56

Цитата:

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

как вариант, сформировать json для отправки
{"оператор": {"поле": "значение", ...}, ...}
так или как душе угодно

Gloft 27.12.2014 23:15

Цитата:

Сообщение от bes (Сообщение 348604)
как вариант, сформировать json для отправки
{"оператор": {"поле": "значение", ...}, ...}
так или как душе угодно

Приведи пример универсальной структуры json для следующих запросов:
(Р1 и Р2 и не Р3)
((Р1 и Р2) или (Р3 или Р4))
(Р1 или (Р2 и не Р3))
((Р1 или Р2) или не (Р3 и Р4))
где Р1, Р2 и т.д. условие поиска "поле": "значение"

bes 27.12.2014 23:22

Цитата:

Сообщение от Gloft
Приведи пример универсальной структуры json для следующих запросов:
(Р1 и Р2 и не Р3)
((Р1 и Р2) или (Р3 или Р4))
(Р1 или (Р2 и не Р3))
((Р1 или Р2) или не (Р3 и Р4))
где Р1, Р2 и т.д. условие поиска "поле": "значение"

{"and": {
	p1,
	p2,
	"not": {
		p3
	}
}

дальше сам

Gloft 27.12.2014 23:41

Цитата:

Сообщение от bes (Сообщение 348606)
{"and": {
	p1,
	p2,
	"not": {
		p3
	}
}

дальше сам

(Р1 и Р2 и не Р3)
{
	"and": {
		p1,
		p2,
		"not": {
			p3
		}
	}
}	
	
((Р1 и Р2) или (Р3 или Р4))
{
	"or": {
		"and": {
			p1,
			p2
		}
		"or": {
			p3,
			p4
		}
	}
}
	
(Р1 или (Р2 и не Р3))
{
	"or": {
		p1				
		"and": {
			p2,
			"not": {
				p3
			}
		}
	}
}

((Р1 или Р2) или не (Р3 и Р4))
{
	"or": {
		"or": {
			p1,
			p2
		}
		"not": {
			"and": {
				p3,
				p4
			}
		}
	}
}

Спасибо за совет, вроде сообразил.


Часовой пояс GMT +3, время: 09:18.