Как составить запрос?

jenia

Новичок
Как составить запрос?

Имеется форма:
<form action=scripts.php>
<input type=text name=gruppa>
<input type=text name=podgr>
<input type=text name=naimen>
<input type=text name=sinonim>
...
<input type=submit>
</form>

Поля формы не обязательны к заполнению.
Данные из формы отправляются в scripts.php, в котором из прешедших переменных формируется запрос к базе mysql. Как правильно сформировать запрос? Может получится, что одна или более переменная будет пуста т.к. пользователь не заполнил поле. Если такую переменную добавить в запрос - что будет?
Если нельзя так, то как можно проверить наличие или отсутствие данных в переданной переменной и из тех в которых данные есть составить запрос.
Самому на ум ничего не приходит кроме как устроить проверку из кучи "if" (типа if ($gruppa == 0){...} ), но, поскольку полей в форме 7-10, то вариантов набирается очень много. Неужели нет другого выхода?
 

jenia

Новичок
Ты не понял 7-10 - это количество полей. А когда я начну проводить проверку, то вариантов будет где-то 40-50.
 

Фанат

oncle terrible
Команда форума
почему?
почему бы не проверить только эти 7-10 полей?
 

jenia

Новичок
Хорошо. Допустим я проверил. Но как после этого составить запрос так, чтобы исключить переменные без данных?
 

Фанат

oncle terrible
Команда форума
зачем после?
ты прямо по результатам проверки и составляй.
есть переменная - составляешь запрос.
нет переменной - не составляешь.
ты со строками в пхп умеешь работать? Операция конкатенации тебе знакома?
 

jenia

Новичок
Всё понял. Протупил я с самого начала. Не туда полез. Вопрос снимаю. Спасибо за помощь.
 

Фанат

oncle terrible
Команда форума
Вообще-то, у меня есть готовый ответ на этот вопрос. Записан в блокнотике.
Но хочется с человеком нормально поговорить, а не кодом тыкать. =)
Я такие вещи делаю так:
PHP:
if ($_GET['operation']=='or') $operation = " or "; else $operation = " and ";
$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".adds($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".adds($_GET['space'])."'";
if (!empty($_GET['price'])) $w[]="rooms='".adds($_GET['price'])."'";

if (count($w)) $where="WHERE ".implode($w,$operation); else $where='';
$query="select * from table $where";
 

jenia

Новичок
Спасибо большое. Я сам уже примерно к тому же шёл. Теперь воспользуюсь твоим вариантом.

-~{}~ 13.05.05 00:20:

if (!empty($_GET['rooms'])) $w[]="rooms='".adds($_GET['rooms'])."'";
Что означает adds, и зачем оно нужно?
 

Фанат

oncle terrible
Команда форума
Что означает adds, и зачем оно нужно?
Это абстрактное обозначение необходимой операции по добавлению кавычек.
производиться может тысячей разных методов. Не только тем, который описан по ссылке
 
Сверху