Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Duże i małe litery
post
Post #1





Grupa:
Postów: 0
Pomógł:
Dołączył: --

Ostrzeżenie: (0%)
-----


Witam wszystkich

Mam prostą wyszukiwarke i takie zapytanie do bazy:

[php:1:e5d8cd73f5]<?php
$query = mysql_query("SELECT * FROM dane WHERE " . $_REQUEST['kryterium'] . " LIKE '%" . $_REQUEST['wartosc'] . "%' order by tytul LIMIT $p, $ile");
$numrows = "SELECT count(*) FROM dane WHERE " . $_REQUEST['kryterium'] . " LIKE '%" . $_REQUEST['wartosc'] . "%'";
list($liczba_wynikow) = @mysql_fetch_row(@mysql_query($numrows));
?>[/php:1:e5d8cd73f5]

Problem polega na tym że... rozpoznaje wielkość liter.
Mianowiecie jeżeli mam tytuł "Łzy słońca"
to wyszukiwarka znajdzie go, ale tylko jeżeli jako wartość wyszukiwania wpisze "Łzy słońca" a chce aby znajdował go również gdy wpisze pierwszą litere jako małą - "łzy słońca"
Jak to rozwiązać?? będe wdzięczny za każdą pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Koshin
post
Post #2





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 29.04.2002
Skąd: jesteś?

Ostrzeżenie: (0%)
-----


mysql daje mozliwosc zamiany wielkosci liter w poszukiwanych wartosciach, za pomoca funkcji lower i upper, ale nie wiem jak one sobie poradza z polskimi literkami.
mozesz rowniez zmieniac wielkosc liter w tym co wprowadzi uzytkownik do wyszukiwania. ale to takze nie jest chyba debeściarskie rozwiazanie
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


MySQL domyslnie ma wylaczone case-sensitivity, wiec musiales stworzyc pola tekstowe albo jako blob albo z wlasnoscia BINARY skoro rozrozna Ci litery duze i male.
Jesli z jakis powodow nie chesz tego zmieniac mozesz poprostu przekonwertowac oba sprawdzane stringi do duzych/malych liter i wtedy porownywac.

[sql:1:9ac3a6492d]SELECT * FROM dane
WHERE UPPER(pole) LIKE UPPER('%szukany_ciag%')
ORDER BY tytul
LIMIT ....[/sql:1:9ac3a6492d]
Musisz jednak pamietac, ze w tym przypadku musisz miec w mysql'u ustawione odpowiednie kodowanie (takie w jakim masz teksty w bazie, czyli np. ISO-8859-2), zeby mogl on zmienic male polskie litery (ążść...) na duze.

PS. php P. -> Bazy danych
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 11:38