−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
scalar4eblo4no 08.09.2010 18:04 # +3
А если будет не два а три параметра? Вы будете 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");
istem 08.09.2010 18:11 # +1
bugmenot 08.09.2010 18:59 # 0
Lure Of Chaos 08.09.2010 19:02 # +3
truedizzy 08.09.2010 19:01 # 0
Анонимус 08.09.2010 20:08 # +4
Кстати, а в какой-такой специальной школе детей учат программированию на php?
В качестве домашнего задания предлагаю Вам представить во что превратится код, если у Вас в приложении будет 28 разных запросов, в каждом из которых будет джойница 6 таблиц
truedizzy 08.09.2010 22:57 # 0
telnet 09.09.2010 07:33 # +1