使用搜索名字和姓氏混合php查询

时间:2013-08-14 13:32:46

标签: php sql search output

我有一个SQL查询命令。问题是当我输入一个人的全名时它不会出现。例如,如果我搜索“ermel”,它将显示ermel。但是,当我搜索“ermel lopez”时,它将无法输出查询。这是我的疑问:

      $query=mysql_query("select * from persons where firstname like '%$searchtext%' or lastname like   '%$searchtext%' order by date desc
      LIMIT $start,$per_page ");   

我尝试了CONCAT,但它无法使用可执行文件:

 SELECT *  
 FROM   persons 
 WHERE  CONCAT( firstname,  ' ', lastname ) LIKE 'kaitlyn' 
 OR     `LastName` LIKE  'pineda' 
 LIMIT 0 , 30

3 个答案:

答案 0 :(得分:1)

尝试颠倒你检查字符串的方式:

"select * from persons 
where '$searchtext' like concat('%',firstname,'%') 
   or '$searchtext' like concat('%',lastname,'%')
 order by date desc
LIMIT $start,$per_page "

这会导致您的searchtext上包含firstname或lastname。

答案 1 :(得分:0)

没有通配符的LIKE完全匹配! 你需要 比如'kaitlyn%'

答案 2 :(得分:0)

我认为您的Sql查询错误 当你搜索全名(ermel lopez) 然后从您的查询中,在两列中搜索它。 但是整个文本不存储在列

试试这个

$searchtext1="ermel";

$searchtext2= "lopez";

$query=mysql_query("select * from persons where firstname like '%$searchtext1%' or lastname like '%$searchtext2%' order by date desc LIMIT $start,$per_page ");