Autor Zpráva
Icka
Profil *
Prosím o radu, co mám udělat abych vybíral z databáze údaje tak, že si vždy zavolám počáteční písmeno např "S" a teď to má vypsat vše, co začíná na to S. Vše je v poho, to problém vůbec není, ale potřeboval bych, aby mi databáze vyhodila i Š. To samé třeba u E, tak vypsat i É a Ě apod... Je to věcí databáze, nebo to musim zadat v PHP??? Díky...
zbystr
Profil *
mno nejsem si vedom, zda to jde v DB, ale asi bude lepsi to osetrit v PHP, kde odtranich diakritiku a pak to posles do DB
Icka
Profil *
No to je sice hezký, ale já potřebuju z DBA vytáhnout třeba Š... To bych musel odstranit diakrtitiku už v databázi..
A nebo jsem tě jen nepochopil... :-)
Icka
Profil *
Napsal jsem si něco takového...: Zatím to funguje, jen to ještě testuju:



if ($_GET["seznam"]) {
$var["a"][] = "Á";
$var["a"][] = "á";
$var["c"][] = "Č";
$var["c"][] = "č";
$var["d"][] = "Ď";
$var["d"][] = "ď";
$var["e"][] = "Ě";
$var["e"][] = "ě";
$var["e"][] = "É";
$var["e"][] = "é";
$var["i"][] = "Í";
$var["i"][] = "í";
$var["o"][] = "Ó";
$var["o"][] = "ó";
$var["r"][] = "Ř";
$var["r"][] = "ř";
$var["s"][] = "Š";
$var["s"][] = "š";
$var["u"][] = "Ú";
$var["u"][] = "ú";
$var["u"][] = "ů";
$var["z"][] = "Ž";
$var["z"][] = "ž";
if (array_key_exists($_GET["seznam"],$var)) {
$dotaz[] = "where nazev like '" . $_GET["seznam"] . "%'";
foreach($var[$_GET["seznam"]] as $pole => $index) {
$dotaz[] = "or nazev like '" . $index . "%'";
}
$filtr = implode(" ",$dotaz);
$var = 0;
} else {
$filtr = "where nazev like '" . $_GET["seznam"] . "%'";
}
}
$query = mysql_query("select * from firmy " . $filtr . " order by nazev");
zbystr
Profil *
nepochopil jsem ja ... .
co tak nejak
SELECT * FROM mytable WHERE text LIKE '$original%' OR text LIKE
'$upraveny%';

kde original je s diakritikou a upraveny je bez diakritiky .....
a prevod bud pomoci ereg_replace, a nebo prevod pres HEX znaku (zase zalezi na kodovani)

ZbySTr
Icka
Profil *
No na tomto principu to vlastně pracuje, jenomže protože je některé písmeno vícekrát (E É Ě) musel jsem na to jít přes pole, které jsem dal procházet a ve finále jednotlivé výsledky pospojovat a z toho dát dohromady pomocí implode jeden celistvej dotaz...
Jestli to půjde jednodušeji, budu určitě moc rád. Díky
zbystr
Profil *
a co takto:
$str2 = StrTr($str, "áäčďéěëíňóöřšťúůüýžÁÄČĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽ", "aacdeeeinoorstuuuyzAACDEEEINOORSTUUUYZ");
zbystr
Profil *
jenom pozor na UTF-8 s tim to nepujde ...
zbystr
Profil *
$str = 'nejakej text';

$a = array("á","ä","č","ď","é","ě","ë","í","ň","ó","ö","ř","š","ť","ú","ů", "ü","ý","ž","Á","Ä","Č","Ď","É","Ě","Ë","Í","Ň","Ó","Ö","Ř","Š","Ť","Ú ","Ů","Ü","Ý","Ž");
$b = array("a","a","c","d","e","e","e","i","n","o","o","r","s","t","u","u", "u","y","z","A","A","C","D","E","E","E","I","N","O","O","R","S","T","U ","U","U","Y","Z");
$final_str = str_replace($a, $b, $str);
Toto téma je uzamčeno. Odpověď nelze zaslat.

0