Autor Zpráva
Levelson
Profil *
Na ověření zda-li tabulka obsahuje určitý text jsem si oblíbil následující kód:
$result=mysql_num_rows(mysql_query("SELECT 1 FROM tabulka WHERE obsah LIKE '%".addlashes($obsah)."%' LIMIT 1"));

Potřeboval bych ovšem i variantu, která nebude striktně lpět na velikosti znaků v řetězci...

Tzn. když bude např. $obsah="karel gott" aby to vyhodilo ($result > 0) i v případě že bude v tabulce záznam "Karel Gott"
Pzn. hledat se bude v záznamech typu VARCHAR...

Jde to nějak zakomentovat, upravit?
Majkl578
Profil
zmenit typ sloupce na *_ci (case-insensitive)
AM_
Profil
Musíš nastavit case insensitive porovnávání (collation). Lze to trvale (jako vlastnost sloupce obsah) nebo jednorázově pro dotaz (přidáním COLLATE ...)
Dočasně je to:
"SELECT 1 FROM tabulka WHERE obsah LIKE '%".addlashes($obsah)."%' COLLATE cp1250_general_ci LIMIT 1"

Porovnávání musí odpovídat kódování, které používáš (tedy začínat na něj, např. cp1250_), a končit _ci (case-insensitive) a musí být dostupné v tvojí verzi SQL.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: