2

Web サイトで AJAX と PHP を使用してライブ検索を行っています。私はすでに XML を使ってみましたが、気に入りません。検索結果を簡単に更新できるようにする必要がありますが、データベースを使用すると簡単に更新できます。

だから、私はこれまでのところこのコードを持っています:

<?php
// database connection
$query = "SELECT * FROM Questions";
$doQuery = mysql_query($query);

$searchArray = array();
$x = 0;
while($row=mysql_fetch_assoc($doQuery)) {
$searchArray[$x] = $row['title'];
$x++;
}

$q = $_GET['search'];

これで、質問テーブルのすべてのタイトルを含む配列ができました。

ユーザーが各文字を入力するときに、配列で文字列を検索するにはどうすればよいでしょうか。(キーアップイベントでajaxを使用して上記のクエリを呼び出す関数があると仮定します)。

それとも私はこれを完全に間違っていますか?データベースを使用して検索結果を取得したいと考えています。これを行う最善の方法は何ですか?

ありがとう

編集後:私はすでに like ステートメントの一部として実行しようとしました$query:

$query = "SELECT * FROM Questions WHERE title LIKE '%" . $q . "%'";

1 つの単語を超えると結果が一致しないため、その仕組みが好きではありませんでした。

4

1 に答える 1

1

データを配列にプルする代わりに、AJAX エンドポイントがワイルドカードを使用して LIKE クエリを実行する AJAX ソリューションをセットアップするのが最善の解決策です。一般的な実装は次のようになります。

$query = "SELECT * FROM Questions WHERE someCol LIKE %SOME_INJECTED_VAR%";

また、注意として、mysql_* 関数の代わりに mysqli または PDO を使用することを検討する必要があります。これらの関数は非推奨であり、今後の PHP バージョンで削除される予定です。

于 2015-02-11T02:37:01.090 に答える