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{
?>
}while($row=mysql_fetch_array($rows));
}
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.")";