Запрос по одному параметру и совокупности параметров

pirita

Новичок
Запрос по одному параметру и совокупности параметров

Подскажите пожалуйста.. в мозгах заклинило...))
Как написать запрос чтобы выборка велась как по каждой переменной так и по совокупности..

переменные передаются из HTML-формы...

например: передаются 2 переменные.. fam и otdel
select * from tbl where fam='$fam' or otdel='$otdel'
- так выводятся все фамилии отдела... а если хочется вывести конкретного человека, то надо ставить and, соответственно если если потом захочется вывести только отдел, то ничего не выйдет т.к. переменная fam будет пуста....
не доганяю! Знаю, что просто, но переклинило совсем!
ПОМОГИТЕ!!!
 

Фанат

oncle terrible
Команда форума
если надо вывести отдел, то запрос будет
select * from tbl where otdel='$otdel'
если надо вывести фамилию, то
select * from tbl where fam='$fam'
 

pirita

Новичок
Автор оригинала: Фанат
если надо вывести отдел, то запрос будет
select * from tbl where otdel='$otdel'
если надо вывести фамилию, то
select * from tbl where fam='$fam'
а если я захочу вывести фамилию в конкретном отделе, то select * from tbl where fam='$fam' and otdel='$otdel'
а если я захочу еще добавишь штук 10 параметров, что для них всех отдельные запросы писать??
 

Raul

Новичок
Re: Запрос по одному параметру и совокупности параметров

переменные передаются из HTML-формы...
Анализируешь данные, пришедшие из формы
на основании этого составляешь $zapros
"select * from tbl".$zapros

Но по сути это частный случай того, что сказал Фанат
 

Фанат

oncle terrible
Команда форума
pirita
Что такое пхп скрипт?
Это программа, которая формирует текстовую строку. правильно?
Так почему же, когда эта строка содержит HTML - это тебя не смущает, а когда SQL - приводит в изумление?
 

Фанат

oncle terrible
Команда форума
отлично.
когда человек понял - не грех ему и гтовый код показать
PHP:
$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[]="price < '".mysql_real_escape_string($_GET['max_price'])."'";


if (count($w)) $where="WHERE ".implode(' AND ',$w); else $where='';
$query="select * from table $where";
-~{}~ 22.11.06 13:23:

Только упаси тебя Кришна написать в форме что-то вроде
<input type="radio" name="oper" value="AND">
а в скрипте - вставлять в запрос $_GET['oper']
 
Сверху