SQL的多条件查询语句时间:2021-07-10 05:40:00$SelectArray = array("$changhe", "$price", "$category", "$pingzhong", "$coutry"); //查询条件 $SearchArray = array( " where attr_value='$changhe'", " where attr_value='$price'", " where shop_price='$category'", " where guojia='$pingzhong'", " where attr_value='$coutry'" ); //SQL替换语句 for($i=0; $i<count($SelectArray); $i++) { if($SelectArray[$i] == "0") { $SearchArray[$i] = ""; //第一步处理:如果条件值为空,相应的SQL语句为空。 $haveWhere = false; //设存在"where"检查标志的初值为false。 } for($j = 0; $j < $i; $j++) //从开始到目前循环的i,处理有哪些where需要变为and。 { $wherePosition = strpos($SearchArray[$j],"where");//检查i前面是否有where出现。 if(($wherePosition == "1") && ($haveWhere == false)) { $SearchArray[$i]=ereg_replace("where","and",$SearchArray[$i]); //where的位置为1,且前面已有where则where换成and。 $haveWhere = true; //"存在where"检查标志设为true。 } } } for($i = 0; $i < count($SelectArray); $i++) { $sql = $sql.$SearchArray[$i]; } $sql="select * from " . $ecs->table('goods') . " ," . $ecs->table('goods_attr') . "".$sql.""; //组成SQL语句 echo $sql; exit;