 
			
				27.12.2014, 19:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2009 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Реализация интерфейса универсального поиска по БД
			 
			
		
		
		
		День/вечер добрый! 
Пытаюсь реализовать интерфейс универсального поиска по БД (количество полей поиска порядка 100). В прикрепленном файле скриншот того, что получается. Может кто уже реализовывал подобное и поделится опытом? 
Интересует механизм формирования универсального запроса, точнее структура/ которую необходимо заполнять по мере работы с интерфейсом, чтобы потом с неё создать SQL запрос в БД. Что это за структура и как ее заполнять пока сам не придумал. 
 
Хотелось бы спросить совета бывалых разработчиков. Может кто видел где подобное уже реализовано? 
		
	
		
		
			
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 22:02
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Gloft
			
		
	 | 
 
	
		День/вечер добрый! 
Пытаюсь реализовать интерфейс универсального поиска по БД (количество полей поиска порядка 100). В прикрепленном файле скриншот того, что получается. Может кто уже реализовывал подобное и поделится опытом? 
Интересует механизм формирования универсального запроса, точнее структура/ которую необходимо заполнять по мере работы с интерфейсом, чтобы потом с неё создать SQL запрос в БД. Что это за структура и как ее заполнять пока сам не придумал.
	 | 
 
	
 
 ты спрашиваешь как добавлять условия в текст запроса?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 22:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.04.2010 
					
					
					
						Сообщений: 557
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Gloft, 
Универсальный интерфейс поиска в БД - это, например, пхпмайадмин. Вдохновись им, и напиши бессмертное. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 22:21
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2009 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Нет, как добавить условие в текст запроса SQL я знаю. 
Просто перед тем как создавать SQL запрос мне нужно собрать данные с  полей/чекбоксов в нужном порядке и с нужными логическими функциями. 
Вот как это сделать я пока не знаю. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 22:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2009 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Яростный Меч
			 
		
	 | 
 
	
		Gloft, 
Универсальный интерфейс поиска в БД - это, например, пхпмайадмин. Вдохновись им, и напиши бессмертное.
	 | 
 
	
 
 Админку к БД я писать не собираюсь. Подобные вещи не рассчитаны на людей далеких от информационных технологий и тонкостей работы с БД.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 22:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Gloft
			
		
	 | 
 
	
		Нет, как добавить условие в текст запроса SQL я знаю. 
Просто перед тем как создавать SQL запрос мне нужно собрать данные с полей/чекбоксов в нужном порядке и с нужными логическими функциями. 
Вот как это сделать я пока не знаю.
	 | 
 
	
 
 как вариант, сформировать json для отправки  
{"оператор": {"поле": "значение", ...}, ...} 
так или как душе угодно  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 23:15
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2009 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от bes
			 
		
	 | 
 
	
		как вариант, сформировать json для отправки  
{"оператор": {"поле": "значение", ...}, ...} 
так или как душе угодно
	 | 
 
	
 
 Приведи пример универсальной структуры json для следующих запросов: 
(Р1 и Р2 и не Р3) 
((Р1 и Р2) или (Р3 или Р4)) 
(Р1 или (Р2 и не Р3)) 
((Р1 или Р2) или не (Р3 и Р4)) 
где Р1, Р2 и т.д. условие поиска "поле": "значение"  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 23:22
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Gloft
			
		
	 | 
 
	
		Приведи пример универсальной структуры json для следующих запросов: 
(Р1 и Р2 и не Р3) 
((Р1 и Р2) или (Р3 или Р4)) 
(Р1 или (Р2 и не Р3)) 
((Р1 или Р2) или не (Р3 и Р4)) 
где Р1, Р2 и т.д. условие поиска "поле": "значение"
	 | 
 
	
 
 
{"and": {
	p1,
	p2,
	"not": {
		p3
	}
}
дальше сам  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				27.12.2014, 23:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2009 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от bes
			 
		
	 | 
 
	
		
{"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
			}
		}
	}
}
Спасибо за совет, вроде сообразил.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |