Autor | Zpráva | ||
---|---|---|---|
Vasek Profil * |
#1 · Zasláno: 6. 10. 2006, 16:11:08
Ahoj, spravil jsem takovehle vyhledavani, ale dela to neco jineho nez chci.
Teda, ono vyhledava, ale neumi diakritiku a velka pismena. Muzete mi pomoci, a nebo poupravit tento kod? Dik. <? function upravstr($nazev){ $diakritika = Array( 'ä' => 'a', 'Ä' => 'a', 'á' => 'a', 'Á' => 'a', 'č' => 'c', 'Č' => 'c', 'ć' => 'c', 'Ć' => 'c', 'ď' => 'd', 'Ď' => 'd', 'ě' => 'e', 'Ě' => 'e', 'é' => 'e', 'É' => 'e', 'ë' => 'e', 'Ë' => 'e', 'í' => 'i', 'Í' => 'i', 'µ' => 'l', 'Ą' => 'l', 'ń' => 'n', 'Ń' => 'n', 'ň' => 'n', 'Ň' => 'n', 'ó' => 'o', 'Ó' => 'o', 'ö' => 'o', 'Ö' => 'o', 'ř' => 'r', 'Ř' => 'r', 'ŕ' => 'r', 'Ŕ' => 'r', 'ą' => 's', '©' => 's', '¶' => 's', '¦' => 's', '»' => 't', '«' => 't', 'ú' => 'u', 'Ú' => 'u', 'ü' => 'u', 'Ü' => 'u', 'ý' => 'y', 'Ý' => 'y', 'ľ' => 'z', '®' => 'z', 'Ľ' => 'z', '¬' => 'z' ); $nazevx = strtr($nazev,$diakritika); $nazevx = strtolower($nazevx); return $nazevx; } $_GET['word'] = upravstr(htmlspecialchars($_GET['word'],ENT_QUOTES)); ?> <?php mysql_connect("***","***,"****"); mysql_select_db("**"); $sql = "SELECT *,MATCH (jmeno, popis) AGAINST ('$_GET[word]' IN BOOLEAN MODE) relevancy FROM produkty WHERE MATCH (jmeno, popis) AGAINST ('$_GET[word]' IN BOOLEAN MODE) ORDER BY relevancy DESC"; $q = mysql_query ($sql); echo mysql_error(); $n = mysql_num_rows($q); ?> <p><?php echo $n; ?> |
||
K Profil * |
#2 · Zasláno: 6. 10. 2006, 16:26:58
rekl bych ze ti tu diakritiku nepobere ta fce strtr(). Zkus ty znaky zapsat jinak(napr. Č = %C8, č = %E8) atp.
|
||
Vasek Profil * |
#3 · Zasláno: 6. 10. 2006, 16:32:18
Muzes mi ukazat, jak je mam zapsat nejsem moc zkuseny. Dik
|
||
K Profil * |
#4 · Zasláno: 6. 10. 2006, 16:39:16
Array(
'ä' => 'a', 'Ä' => 'a', 'á' => 'a', 'Á' => 'a', '%E8' => 'c', // č '%C8' => 'c', // Č 'ć' => 'c', atp. napred to zkus jen pro to č a zkus neco co to č obsahuje vyhledat-co ti to udela a kdyz to bude fungovat tak zkus prepsat vsechny. |
||
Vasek Profil * |
#5 · Zasláno: 6. 10. 2006, 16:46:55
ne, nejde to. co vlastne znamena '%C8' ? DIk
|
||
pavel prochazka.zde.cz Profil * |
#6 · Zasláno: 6. 10. 2006, 16:48:46
chces odstranit diakritiku? pokud ano tak zkus moji fce, kterou mam uz hodnekrat odzkousenou..... :)
function StandartString ($sBuffer){ //Tato funkce odstrani diakritiku a velka pismena prevede na mala... $sBuffer=StrTr($sBuffer,"áÁéÉíÍóÓúÚůŮýÝěĚą©čČřŘľ®»«ďĎňŇQWERTYUIOPASDFG HJKLZXCVBNM","aaeeiioouuuuyyeessccrrzzttddnnqwertyuiopasdfghjklzxcvbnm "); return $sBuffer; } UPORIZNENI!!! Tu merezu v rede pismen smaz, ja ji tam nemam ale po odeslani sem se vytvori...... |
||
pavel prochazka.zde.cz Profil * |
#7 · Zasláno: 6. 10. 2006, 16:49:22
Je to mezera mezi G a H pismenem, tu smaz ve zdrojaku!!!
|
||
Vasek Profil * |
#8 · Zasláno: 6. 10. 2006, 16:51:13
jak ma teda ted vypadat muj cely kod? :)
|
||
tiso Profil |
#9 · Zasláno: 6. 10. 2006, 16:54:23
Vasek
OT: ako má vypada» Tvoj kód by si mal vedie» ty. Ak to tu niekto napíąe tak to uľ nebude Tvoj kód. Sorry za poznámku, ale nemám rád túto formu lenivosti pohnú» vlastným rozumom... |
||
Vasek Profil * |
#10 · Zasláno: 6. 10. 2006, 17:04:07
Tohle mi nefunguje:
<? function StandartString ($sBuffer){ //Tato funkce odstrani diakritiku a velka pismena prevede na mala... $sBuffer=StrTr($sBuffer,"áÁéÉíÍóÓúÚůŮýÝěĚą©čČřŘľ®»«ďĎňŇQWERTYUIOPASDFG HJKLZXCVBNM","aaeeiioouuuuyyeessccrrzzttddnnqwertyuiopasdfghjklzxcvbnm "); return $sBuffer; } $_GET['word'] = StandartString(htmlspecialchars($_GET['word'],ENT_QUOTES)); ?> <?php mysql_connect("***","***","***"); mysql_select_db("***"); $sql = "SELECT *,MATCH (jmeno, popis) AGAINST ('$_GET[word]' IN BOOLEAN MODE) relevancy FROM produkty WHERE MATCH (jmeno, popis) AGAINST ('$_GET[word]' IN BOOLEAN MODE) ORDER BY relevancy DESC"; $q = mysql_query ($sql); echo mysql_error(); $n = mysql_num_rows($q); ?> |
||
pavel prochazka.zde.cz Profil * |
#11 · Zasláno: 6. 10. 2006, 17:11:20
moje funkce je ok.... tak to skus rozlozit a ne davat vysledek rovnou do: $_GET['word'] a podivat se na mezivysledek.....
|
||
Vasek Profil * |
#12 · Zasláno: 6. 10. 2006, 17:13:11
Ja nejsem v php dobry, ale to vyhledavani jsem se chtel naucit. Nemohl by jsi sem dat nejake svoje, ktere funguje a neni moc slozite? ze bych se to na nem naucil.
|
||
pavel prochazka.zde.cz Profil * |
#13 · Zasláno: 6. 10. 2006, 17:16:10
ja mam vyhledavani a mam ho dane na svem webu.... muzes zkustit zda to funguje ok.... ale nemam to pres databazi ale pres soubory.... cely svuj web mam v souborech..... .)
|
||
Vasek Profil * |
#14 · Zasláno: 6. 10. 2006, 17:22:38
tak to je mi nanic, ja to potrebuju pres db.. nema to nekdo prosim?
|
||
pavel prochazka.zde.cz Profil * |
#15 · Zasláno: 6. 10. 2006, 17:30:19
ale princip je stejny akorat se to cte misto z DB ze souboru.....
|
||
Vasek Profil * |
#16 · Zasláno: 6. 10. 2006, 17:30:52
Tak poslal by jsi mi to prosim?
|
||
Vasek Profil * |
#17 · Zasláno: 6. 10. 2006, 17:31:12
bud to sem zkopiruj, nebo ti dam icq nebo mail
dik |
||
Vasek Profil * |
#18 · Zasláno: 6. 10. 2006, 17:32:58
icq - 281 859 435
|
||
krteczek Profil |
#19 · Zasláno: 6. 10. 2006, 18:26:38
Vasek: vyhledávání skus tohle:
krteczek |
||
Časová prodleva: 3 dny
|
|||
Vasek Profil * |
#20 · Zasláno: 9. 10. 2006, 16:54:08
Zkousel jsem to ale vratilo mi to Query was empty. :(
|
||
krteczek Profil |
#21 · Zasláno: 9. 10. 2006, 18:20:32 · Upravil/a: krteczek
Jeľiąi omlouvám se: momentálně je tam překlep...
Ale jedna pozitivní věc, server ti řekl jakou chybu máą ;-) $dotaz2 = ... ale má být :$dotaz = ... přebývá tam dvojka u názvu té proměnné, a nejde to jiľ opravit ps tak to tu dávám znovu...:
teď uľ by to mělo být v pořádku krteczek |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0