Как сформировать MySQL запрос из формы с несколькими полями?

Blik

Guest
Как сформировать MySQL запрос из формы с несколькими полями?

Есть форма с 8 ю полями и парой комбобоксов.
из комбобокса выбираются типы ответов, а в поля вводят данные.
Как сделать выборку и сформировать и запрос так ,что бы
в случае если не выбран ответ из комбобокса или
не введено данное в поле, выбирались все значения
из соответствующих колонок.
 

jer

...
непонятна логика. особенно :
"если не выбран ответ из комбобокса или не введено данное в поле, выбирались все значения из соответствующих колонок. "

а вообще:
работать с формой умеешь?
с базой умеешь?

или проблема с алгоритмом?
 

Фанат

oncle terrible
Команда форума
Blik
тебе надо понимать, что работаешь ты не с базой, а со строкой.
Тебе надо собрать на пхп СТРОКУ
которая будет запросом из базы.
Задача - элементарная.
алгоримт - уровня тех, что по информатике в школе проходют:

ЕСЛИ полеА заполнено - Строка равна тому-то
ЕСЛИ полеБ заполнено - Строка равна тому-то

и так далее.
 

Blik

Guest
Cпасибо Фанат, я сделал по этому принципу, знаю что не идеал, но объяснил ты в точку. Ну а сейчас иду на митинг, революция у нас тут.
 

Nicko3000

Guest
А простите, можно ли по подробнее про эту тему изнать , если кому нибудь не трудно помогите пожалуйста.
Смысл тот же, но вот как его организовать по правильней и оптимальней не знаю .
Допустим у меня есть форма с 10ю полями, как я понял, из ответа Фаната, знячит мне надо все 100 комбинаций прописать?
Спасибо.
 

SelenIT

IT-лунатик :)
Зачем же перебирать комбинации? Просто собираешь запрос по частям, в зависимости от заполненности тех или иных полей добавляя или не добавляя в него определенные ограничивающие условия. Сколько полей - столько проверок.
 

Nicko3000

Guest
ага ... дошло.. т.е. работать непосредвтвенно с запросом , а не прописывать строку заранее и после подставлять подходящий вариант ... попробую .... спасибо SelenIT , Фанат и всем всем ... :) после напишу как получилось . :)
Спасибо!
 

Фанат

oncle terrible
Команда форума
лично я делаю примерно так:
$where=array(); //это обязательно
if ($_GET['age']) $where[]='age > '.intval($_GET['age']);
if ($_GET['name']) $where[]="name LIKE '%".addslashes($_GET['age'])."%'";

а потом
$where=implode(' AND ',$where);
 

Nicko3000

Guest
Фанат
Спасибо за прямую наводку .... все ок ! СПАСИБО :)
 
Сверху