Autor | Zpráva | ||
---|---|---|---|
creck Profil |
#1 · Zasláno: 28. 5. 2006, 00:07:52
udelal jsem si jednu funkci, ktera v textu najde slovo a kdyz toto slovo je i v DB tak z neho udela odkaz, problem je ale v tom, ze kdyz je text prilis dlouhy odesila strasne mnoznstvi dotazu a tak silene zatezuje DB a jeste k tomu, kdyz je v DB hodne zaznamu tak to je dalsi zatez na cely script a dlouho to nacita, potreboval bych poradit jak to udelat jednoduseji.
|
||
koudi Profil |
#2 · Zasláno: 28. 5. 2006, 00:11:07
Moc sem to nečet, ale nebylo by třeba jednodušší načíst všechna slova do db a pak pouze porovnávat při projíždění toho cyklu (místo nového db dotazu)?
|
||
creck Profil |
#3 · Zasláno: 28. 5. 2006, 00:18:03
koudi
myslim ze se nechapeme ... v DB mam nejake zaznamy (jmena). Uzivatel kdyz napise nejaky text a prida jej do DB. Pri naslednem vypisovani tohoto textu mi ma funkce projet vsechna slova a pokud je dane slovo v DB kde jsou jmena tak z toho jmena udela odkaz. |
||
koudi Profil |
#4 · Zasláno: 28. 5. 2006, 00:22:33
Tak nějak sem to myslel:
Teď to je zhruba takhle
Navrhuju to trochu zjdenodušit na
odpadá tím to obrovské množství dotazů do db. |
||
koudi Profil |
#5 · Zasláno: 28. 5. 2006, 00:24:59
Ještě mě napadlo, že by pak šla použít fce array_intersect pro nalezení průniku polí, což je hledaný výsledek a z toho pole to až vše nahradit
|
||
Retal Profil |
#6 · Zasláno: 28. 5. 2006, 09:00:24
Určitě změň algoritmus na ten, který navrhuje koudi, tj. načíst všechny rasy / jména psů do pole. Potom bych osobně sáhnul k regexpům. Konkrétně preg_replace() přijímá první argument i jako pole, takže mu můžeš předhodit celý výsledek z databáze.
Uvažoval bych také o nějaké formě cachování, ať už psů nebo celých výsledků. A do třetice: Co to je za šílený odkaz <a class="blue" href="javascript:dog(...);"><b>...</b></a> Proč ten javascript?! Odstraňuješ účinně všechny vyhledávače. Proč element <b>? Vždyť vzhled můžeš definovat přes CSS. Proč strtoupper? Písmo můžeš taktéž kapitalizovat přes CSS. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0