php多條件疊加查詢
header("Content-Type:text/html;charset=utf-8");
include("../manage/include/function.php");
$brand=substr($_POST["brand"],0,strlen($_POST["brand"])-1);
$color=substr($_POST["color"],0,strlen($_POST["color"])-1);
$caizhi=$_POST["caizhi"];
$style=$_POST["style"];
$kucun=$_POST["kucun"];
echo($brand."
");
echo($color."
");
echo($caizhi."
");
echo($style."
");
echo($kucun);
$q="select * from pros_pro where (1=1)";
if($brand!=null){
$q=$q+"and psp_brand in(".$brand.")";
}
if($color!=null){
$q=$q+"and psp_color in(".$color.")";
}
if($caizhi!=null){
$q=$q+"and psp_caizhi='".$caizhi."'";
}
if($style!=null){
$q=$q+"and psp_style='".$style."'";
}
if($kucun!=null){
$q=$q+"order by psp_stock desc";
}else
{
$q=$q+"order by psp_id desc";
}
$rows=query($q);
if($row=mysql_fetch_array($rows))
{
do{
?>
}
else
{?>
沒有合格資訊,請重新定義搜尋條件!
}
?>
這個代碼有神馬問題?為什麼會報錯:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/home/hmu069081/htdocs/products/get_post.php on line 37
且沒有合格資訊,可是我選的條件明明是有記錄的
------解決方案--------------------
把所有形如
$q=$q+"and psp_brand in(".$brand.")";
這樣的語句,改成形如這樣的
$q = $q ." and psp_brand in(".$brand.")";
或
$q .= " and psp_brand in(".$brand.")";