−863
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
if (($pol) and ($brand)) {
$result = mysql_query("SELECT * FROM inetmag WHERE pol = '$pol' AND brand = '$brand'");
}
;
if ((!$pol) and ($brand)) {
$result = mysql_query("SELECT * FROM inetmag WHERE brand = '$brand'");
}
;
if (($pol) and (!$brand)) {
$result = mysql_query("SELECT * FROM inetmag WHERE pol = '$pol'");
}
;
if ((!$pol) and (!$brand)) {
$result = mysql_query("SELECT * FROM inetmag");
}
;
мой учитель сильно негодовал, и предложил вот это:
$url = <<< TEXT
SELECT *
FROM inetmag
WHERE
pol = IF(LENGTH('$pol')<>0,('$pol'),pol)
AND
brand = IF(LENGTH ('$brand')<>0,('$brand'),brand)
TEXT;
$result = mysql_query($url);
Запостил:
truedizzy,
08 Сентября 2010
А если будет не два а три параметра? Вы будете 8 условий писать?
$expr=array('brand'=>$brand,'pol'=>$pol) ;
$clause=Array();
foreach($expr as $filed=>$value)
if($value) $clause[]="$filed='$value'"; //здесь же можно mysql_real_escape_string
if($clause) $clause="WHERE ".imlode(" AND ",$clause);
$result = mysql_query("SELECT * FROM inetmag $clause");
Кстати, а в какой-такой специальной школе детей учат программированию на php?
В качестве домашнего задания предлагаю Вам представить во что превратится код, если у Вас в приложении будет 28 разных запросов, в каждом из которых будет джойница 6 таблиц