为什么搜索在输入全名时不起作用?

时间:2013-12-30 13:03:28

标签: php mysql

我有问题,当我只输入名字时,例如; rahul它给出了搜索结果,但是当我输入全名时,例如; rahul kapoor它没有给出任何东西,也没有显示这样的用户。

我使用javascript从search.php获取搜索结果,这里是search.php:

<?php
if($_POST)
{
$q=$_POST['searchword'];
$sql_res=
mysql_query("select * from users where first_name like '%$q%' or last_name like '%$q%' order by id LIMIT 5");
while($row=mysql_fetch_array($sql_res))
{
$fname=$row['fname'];
$lname=$row['lname'];
$img=$row['profile_pic'];
$re_fname='<b>'.$q.'</b>';
$re_lname='<b>'.$q.'</b>';
$final_fname = str_ireplace($q, $re_fname, $fname);
$final_lname = str_ireplace($q, $re_lname, $lname);

?>
<div class="display_box" align="left">
<img src="usedata/profile_pics/
<?php echo $img; ?>" />
<?php echo $final_fname; ?>&nbsp;
<?php echo $final_lname; ?><br/>
</div>
<?php
}
}
else
{}

&GT;

2 个答案:

答案 0 :(得分:0)

正如@Mark Ba​​ker和@BenM所指出的,你可以尝试一下

mysql_query("select * from users where first_name like '%$q%' or last_name like '%$q%' or concat(first_name,' ',last_name) = '$q' or concat(first_name,' ',last_name) like '%$q%'order by id LIMIT 5");

答案 1 :(得分:-1)

试试这个:

$q=$_POST['searchword'];
list($q1,$q2) = explode(" ", $q);
$sql_res=
    mysql_query("select * from users where (first_name like '%$q1%' OR first_name like '%$q2%') or (last_name like '%$q1%' OR last_name like '%$q2%') order by id LIMIT 5");

或类似的东西。

这是因为你必须拆分名字和姓氏......