你的查询语句查的是并集,难道kecheng,name,city不是同一个表的字段么?当然,用你的查询语句也能查到记录,但是却不能做到精确定位一条记录如一条记录:"city"=>"china" ,"name"=>"myname" , "title " => "English" 你的查询语句这时是: "select id from kecheng where title like '%English%' or name like '%myname%' or city like '%china%' " 这时查到的记录,并非只有同时包含‘china’、‘myname’、‘English’,所以你的查询语句是失败的。你应该改成这样: $where = " where 1=1";//注意where前面有空格 if($_POST[kecheng])$where .= " AND title like '%$_POST[kecheng]%'";//注意AND前面有空格 if($_POST[name])$where .= " AND name like '%$_POST[name]%'"; if($_POST[city])$where .= " AND city like '%$_POST[city]%'"; $result = mysql_query("select id from kecheng ".$where); 同样下面的赋值给$query 变量的语句也依照此修改,就能实现模糊查询,并根据条件精确定位记录了。 ~
不是like语句吗