私はphp、ajax、およびmysqlを使用してオートコンプリート機能を作成しています。ユーザーが学校の名前を入力し始めると、ajaxを使用して、テキストフィールドに入力した値をphp関数に送信します。次に、その関数は like %string% を使用して、入力したものと一致する大学を見つけます。いくつか問題があります。
たとえば、データベースに Cal Poly (California polytech) があります。
カリフォルニア工科大学サン ルイス オビスポ校
しかし通常、ユーザーは California Polytech と入力し、Cal poly または学校名の語句を入力するだけです。
しかし、「Cal Poly」と入力しても結果が表示されません。カリフォルニア州と入力して、cal poly school を表示する必要があります。
これは一例であり、他の学校にも必要です。
データベース クエリを改善して、類似していないものを返さずに、わずかでも類似した結果を返すようにする方法はありますか?
これまでの私のコードは次のとおりです。
Jクエリ:
$(".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);
}
});
}
});
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);
}
大学モデル
public function search_colleges($search) {
$query = $this->db->select()->from('collegenames')->like("names", $search)->get();
return $query->result_array();
}
教えてください、私は like%% を使用した検索機能にちょっと慣れていません
ありがとう