我有问题,当我只输入名字时,例如; 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; ?>
<?php echo $final_lname; ?><br/>
</div>
<?php
}
}
else
{}
&GT;
答案 0 :(得分:0)
正如@Mark Baker和@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");
或类似的东西。
这是因为你必须拆分名字和姓氏......