Autor | Zpráva | ||
---|---|---|---|
deader Profil * |
#1 · Zasláno: 18. 9. 2009, 19:28:53
Zdravím, mám na svých připravovaných stránkách vyhledávání, které prohledává mysql tabulku fórum. Potřeboval bych, aby to nerozlišovalo velikost písmen.
Zatím to mám takhle: $vysledek = mysql_query("SELECT * FROM forum WHERE MATCH(text) AGAINST('".$search2."') OR MATCH(jmeno) AGAINST('".$search2."') ORDER BY (2 * MATCH(text) AGAINST('".$search2."') + MATCH(jmeno) AGAINST('".$search2."')) LIMIT ".$z1.",".$z2, $conn); Moc děkuji za odpověď. |
||
xlifer Profil |
#2 · Zasláno: 18. 9. 2009, 22:14:28
Co takhle?
php: $search = StrToLower($search); mysql: $vysledek = MySQL_Query("SELECT * FROM tabulka WHERE LOWER(pole) LIKE '%".$search."%'"); nebo primo mysql: $vysledek = MySQL_Query("SELECT * FROM tabulka WHERE LOWER(pole) LIKE '%".StrToLower($search)."%'"); |
||
TomášK Profil |
#3 · Zasláno: 18. 9. 2009, 22:58:18 · Upravil/a: TomášK
xlifer
Takhle pokud možno ne. LIKE na místě fulltextu nemá co dělat. Převedení na malá písmena by samo o sobě fungovat mohlo, ale preferoval bych řešení pomocí collate, viz http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html. Je potřeba zvolit kolaci, která má na konci '_ci' (case insensitive) a je potřeba nastavit pro daný sloupec (případně i tabulku/databázi). Podobný problém byl řešený tu: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=93919 |
||
deader Profil * |
#4 · Zasláno: 19. 9. 2009, 17:45:14
Strtolower tam mám teď taky, jenže jsem to sem nekopíroval, protože to mi třeba na výraz "sPuStiL" vyhledá výsledek "spustil", ale nevyhledá "Spustil". Zkusím tedy to collate.
|
||
deader Profil * |
#5 · Zasláno: 19. 9. 2009, 18:19:31
Vyskytl se problém, udělal jsem to takhle:
$vysledek = mysql_query("SELECT * FROM forum WHERE text LIKE _latin2 '".$search."' COLLATE latin2_general_ci LIMIT ".$z1.",".$z2, $conn); U sloupce text jsem nastavil porovnávání latin2_general_ci. Vrací to null na "spustil" i "Spustil". |
||
deader Profil * |
#6 · Zasláno: 21. 9. 2009, 18:49:18
Zapomněl jsem na %. S tím to funguje. Teda takhle:
$vysledek = mysql_query("SELECT * FROM forum WHERE text LIKE _latin2 '%".$search."%' COLLATE latin2_general_ci LIMIT ".$z1.",".$z2, $conn); |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0