需要使用学校名称填充自动填充

Wil*_*rim 2 php mysql

我使用php,ajax和mysql来制作自动完成功能,当用户开始输入他们学校的名字时,我使用ajax将他们输入的值发送到文本字段到php函数.该函数然后使用类似%string%来查找与他们输入的内容相匹配的大学.我有几个问题.

例如,我在我的数据库中有Cal Poly(California polytech):

加州州立理工大学圣路易斯奥比斯波分校

但通常用户会进入California Polytech,他们只会输入Cal poly或他们学校名称的短语.

但是当我输入"Cal Poly"时没有显示任何结果,我必须输入加利福尼亚才能让cal poly school显示出来.

这只是一个例子,我也需要其他学校.

有没有办法改进我的数据库查询,使其返回甚至略有相似的结果,而不返回不相似的东西?

到目前为止,这是我的代码:

jQuery的:

$(".input-college").keyup(function(){
    var d = $('#search-college-form').serialize();
    var v = $(this).val();
    if (v.length > 4) {
        $.ajax({
            url: '/colleges/search_college_names',
            data: d,
            type: "POST",
            success:function(data){
                $(".input-d-down ul").html(data);
            }
        });
    }

});
Run Code Online (Sandbox Code Playgroud)

PHP

大学控制员

 public function search_college_names() {
        $search = $_POST['college-search'];
        $data['college_list'] = $this->College_Model->search_colleges($search);
        $this->load->view('inputs_views/search-college-dropdown', $data);
    }
Run Code Online (Sandbox Code Playgroud)

大学模式

public function search_colleges($search) {
$query = $this->db->select()->from('collegenames')->like("names", $search)->get();
return $query->result_array();
}
Run Code Online (Sandbox Code Playgroud)

请让我知道,我是一个新的搜索功能使用像%%

谢谢

n3r*_*3rd 5

解决此问题的一种方法是使用空格分割搜索字符串,然后AND在查询中将它们分开.

例如,字符串"Cal poly"将导致诸如的查询SELECT * FROM table WHERE name LIKE "%Cal%" AND name LIKE "%poly%".

如果你需要这是一个非常快速和智能的搜索,你应该看看Solr,但这可能是你的问题严重矫枉过正.