我有以下字段:firstname和lastname
关键字是$keyword
如果有人搜索:John Doe
我希望它能够返回结果。
现在它返回结果,如果它的约翰,或它的母鹿。
这是代码:
$q1 = strtolower($_GET["q"]);
$q=str_replace(" ","%",$q1);
$sql = "select DISTINCT users.*, user_id FROM users WHERE $email_filter
firstname LIKE '%$q%' OR lastname LIKE '%$q%' ORDER BY lastname";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) { echo $results }
任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要首字母和姓氏与您的参数匹配的情况,而不是名字或姓氏,因此它应该是名字LIKE'%$ q%'和姓氏一样'%$ q%'
请记住,由于您使用LIKE,如果名称是John Doe,Johnnie Doe,John Does,Johnnie这些将全部与其他记录一起返回,其中第一个名称包含John且姓氏包含Doe
答案 2 :(得分:0)
如果用户提供类似“John Doe”的响应,则应修剪任何额外的空格,将提供的名称分解为值,并根据您提供的代码查询它们:
$q1 = trim(strtolower($_GET["q"]));
$name = explode(" ",$q1);
$fname = $name[0];
$lname = $name[1];
$sql = "select DISTINCT users.*, user_id FROM users WHERE $email_filter
firstname LIKE '%$fname%' OR lastname LIKE '%$lname%' ORDER BY lastname";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)) { echo $results; }
希望有所帮助