Postgresql データベースの行からコンテンツを取得し、その小文字バージョンとユーザー入力の小文字バージョンを比較して、データベースに存在するかどうかを確認したいと考えています。
私は試した:
"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC"
しかし、それはクエリをまったく機能させません。
編集
ここのようなオートコンプリート Jquery UI を実装しようとしています: http://jqueryui.com/demos/autocomplete/#remote for search box (for names)
JavaScript と php を使用します。
phpコード:
$search = ($_GET['term']);
if (!$con)
{ die('Could not connect: ' . pg_last_error ());}
else
{
$sql = "SELECT name FROM users_table WHERE name LIKE '%$search%' ORDER BY name ASC";
$result = pg_query($sql);
$json = '[';
$first = true;
while ($row = pg_fetch_array($result))
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;
exit();
}
JavaScript コード:
$(document).ready(function()
{
$('#auto').autocomplete(
{
source: "./file.php",
minLength: 3
})
})
上記のすべてがうまく機能します..ここのデモとまったく同じです:http://jqueryui.com/demos/autocomplete/#remote
私の問題は、データベース内の名前が大文字 (例: LORI) で保存されていることです。もちろん、ユーザーは名前 (例: loli) を検索するために検索ボックスに小文字を挿入することを好みます。しかし、大文字で保存されているので、変換する必要があります。
私はあなたの提案として試しました:
$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC";
それから私は空のドロップダウンリストを手に入れました! かなり奇妙です!
前もって感謝します。