2012-04-29 11 views
7

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.

Odpowiedz

11

Google is your friend:

SELECT LOWER(name) FROM user_names 
WHERE name ILIKE '%$search%' ORDER BY name ASC 
+0

dzięki ale nadal mam pustą tablicę z JSON, jeśli mogę użyć DOLNY – Shadin

+0

@Shadin Niestety, nie było jasne, w moim poście. Sugestia polega na zmianie "LIKE" na "ILIKE" – dwurf

+0

tak, zauważyłem to i wypróbowałem. Nie ukrywam, dlaczego mam pustą tablicę – Shadin

Powiązane problemy