Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] LIKE a wielkość liter
Forum PHP.pl > Forum > Przedszkole
busyboy
Witam,

Mam zmienna :

Kod
$nazwa_produktu = str_replace(' ', '%', $_POST['nazwa_produktu']);


podstawiam pod zapytanie :

Kod
mysql_query("select * from towary where EAN like '%".$_POST['kod_ean']."%' and Nazwa like '%".$nazwa_produktu."%' order by Grupa asc");


W bazie jest nazwa towaru : Owoce Świata Pomelo 400ml12szt

jak wpisze w wyszukiwaniu na stronie Owoce Świa to dostaje wynik, jednak jak wpisze Owoce świa wyniku nie dostaję sad.gif

Jak rozwiązać ten problem ?
viking
Wyszukiwanie po wielkości liter zależy od ustawionego COLLATE.
busyboy
Czyli trzeba to ustawić po stroni MySQL ? czy w zapytaniu ?
lukaskolista
Poczytaj o wyszukiwaniu pełnotekstowym, lepsze już to niż taki like - wyniki będą beznadziejne i nic nie warte w przypadku dużej ilości danych, a samo zapytanie może zabić bazę.
viking
Cytat(busyboy @ 28.04.2017, 11:39:49 ) *
Czyli trzeba to ustawić po stroni MySQL ? czy w zapytaniu ?

Jak ustawisz po stronie mysql nie będziesz musiał w zapytaniu.
Mam nadzieję że to zapytanie nie jest publiczne? sql injection.
busyboy
Dziękuje za zainteresowanie temat - a po stronie mysql to gdzie tego szukać ?
viking
https://dev.mysql.com/doc/refman/5.7/en/create-table.html

Słowo klucz collate.
czychacz
COLLATE to jedno rozwiązanie, a drugie to ILIKE - porównuje bez względu na wielkość liter.
ale tak, jak @lukaskolista pisał - poczytaj o wyszukiwaniu pełnotekstowym
viking
Chyba pomyliłeś z postgresem wink.gif Tak słabo z ilike w mysql.
woxala123
Poczytaj sobie ten przykład.
http://forum.php.pl/index.php?showtopic=253821
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.