Я хочу получить содержимое строки в базе данных Postgresql и сравнить ее строчную версию с строчной версией пользовательского ввода, чтобы проверить, существует ли она в базе данных.
Я старался:
"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC"
но из-за этого запрос вообще не работает.
ИЗМЕНИТЬ
Я пытаюсь реализовать автозаполнение пользовательского интерфейса Jquery, как здесь: http://jqueryui.com/demos/autocomplete/#remote для окна поиска (для имен)
используя 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), и, конечно, пользователь предпочитает вставлять строчные буквы в поле поиска для поиска имени (например, lori). но поскольку он хранится в верхнем регистре, мне нужно его преобразовать.
я попробовал как ваше предложение:
$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC";
то я получил пустой выпадающий список! довольно странно!
заранее спасибо.
LOWER(name)
- person Daniel L. VanDenBosch   schedule 16.11.2018