日期:2014-05-16  浏览次数:20384 次

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."</br>");
echo($color."</br>");
echo($caizhi."</br>");
echo($style."</br>");
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{
?>
<td align='right'><div align='center'><?php echo $row['psp_name'];?></div></td>
<?    }while($row=mysql_fetch_array($rows));
}
else
{?>
<td align='right'><div align='center'>没有符合条件的信息,请重新定义搜索条件!</div></td>
<?
}
?>


这个代码有神马问题?为什么会报错: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.")";