我创建了一个使用php和jquery的自动建议搜索框。用户提示插入名称和姓氏,以查找名为user的表中的数据库中存在的人员。表用户拥有2列,名称和姓氏。当您键入名称但按空格键移动并键入姓氏不会给出任何结果时,我的搜索工作正常。整个问题似乎在按空格键时出现。任何想法如何解决它?搜索引擎的名字和姓氏
这是我的jQuery代码:
$(document).ready(function(){
$('#search_form_1').keyup(function(){
var value = $(this).val();
if(value != ''){
$('#search_result').show();
$.post('search_form.php', {value: value}, function(data){
$('#search_result').html(data);
});
}else{
$('#search_result').hide();
}
});
});
这是我的PHP代码:
<?php
if(isset($_POST['value'])== true && empty($_POST['value']) == false){
$value = mysql_real_escape_string($_POST['value']);
$query = mysql_query(" SELECT `surname`, `name` FROM `users` WHERE (`surname` LIKE '$value%' OR `name` LIKE '$value%') OR (`name` LIKE '$value%' OR `surname` LIKE '$value%') ");
while($run = mysql_fetch_array($query)){
$surname = $run['surname'];
$name = $run['name'];
echo " $surname $name ";
}
}
?>
是否列'name'包含全名,姓+姓什么? – Niklas
你的2在()中的where子句基本相同,你可以删除一个。它的原因是你不会分裂你的输入以允许“姓氏姓”,所以它寻找姓氏为“dave hin”,显然是永远不会匹配的,因为姓氏字段将不是戴夫,并且同样发生在名字字段上。您需要检查输入的空间,在空间上爆炸并使用分解的部分分别搜索名字,姓氏列。 ofc这会导致三重名称的问题,但首先要做的第一件事 – Dave
尝试更改您的查询以“姓名+”'+姓氏作为全名的用户,其中全名如'%$ value%'“。当你键入空格时,搜索将在其末尾寻找带有空格的人名,我会想象它不存在于数据库中。 – Jerryf