Chcę uzyskać zawartość z wiersza w bazie danych PostgreSQL i porównać wersję pisaną małymi literami do danych wprowadzanych przez użytkownika, aby sprawdzić, czy istnieje w bazie danych.Małe litery PostgreSQL do porównywania danych
próbowałem:
"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC"
ale to make kwerenda nie działa w ogóle.
EDIT
próbuję wdrożyć autouzupełniania jQuery UI jak tutaj: http://jqueryui.com/demos/autocomplete/#remote w polu wyszukiwania (dla nazw)
użyciu JavaScript i PHP.
kod php:
kod$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
})
})
wszystko powyżej doskonale .. dokładnie tak samo jak w demo tutaj: http://jqueryui.com/demos/autocomplete/#remote
moim problemem jest to, że nazwy w bazie danych zapisane wielkimi literami (np. LORI) i oczywiście użytkownik woli wstawiać małe litery w polu wyszukiwania, aby wyszukać nazwę (np. lori). ale ponieważ jest przechowywany wielkimi literami, muszę go przekonwertować.
próbowałem jako sugestię:
$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC";
potem mam pustą rozwijanej listy! dość dziwne!
z góry dzięki.
dzięki ale nadal mam pustą tablicę z JSON, jeśli mogę użyć DOLNY – Shadin
@Shadin Niestety, nie było jasne, w moim poście. Sugestia polega na zmianie "LIKE" na "ILIKE" – dwurf
tak, zauważyłem to i wypróbowałem. Nie ukrywam, dlaczego mam pustą tablicę – Shadin