Autor | Zpráva | ||
---|---|---|---|
Pavel Vodnář Profil * |
#1 · Zasláno: 5. 5. 2011, 10:20:00
Ahojik, chtěl by sem se zeptat na jakém principu pracuje více hladinové přidávání komentářů, mám tím na mysli - když přidám první komentář, jak uděkat aby šlo komentovat např tento prní komentář a tak dále. Jak je to udělané v DB? Děkuji
|
||
Louka Profil |
#2 · Zasláno: 5. 5. 2011, 10:24:12
Pavel Vodnář:
U každého komentáře si ukládám, na co reaguje a pak vypisuju rekurzivně strom té diskuse. |
||
Pavel Vodnář Profil * |
#3 · Zasláno: 5. 5. 2011, 10:25:13
Louka Rekurzivně? jak to myslíš?
|
||
Louka Profil |
#4 · Zasláno: 5. 5. 2011, 10:47:13
Tabulka komentare:
id autor text odpoved 1 Louka Něco / 2 Pavel Něco2 1 A pak vypisuju, volám fci třeba vypis($odpoved) a ta je něco jako function vypis($odpoved) { $vysl = mysql_query("select .... where odpoved = $odpoved"); for ( ... ) { // vypis clanku echo " ... " // rekurze vypis($odpoved); // zde se do proměnné odpoved přiřadí hodnota sloupce odpoved v řádku komentu a vypíší se komenty reagující na ten aktuální } } vypis("/"); // zahájení |
||
Kajman_ Profil * |
#5 · Zasláno: 5. 5. 2011, 10:57:17
Louka:
A není lepší vyčíst si najednou všechny komentáře ke články do pole a pak dělat výpis rekurzí jen nad tímto php polem? |
||
okolojdouci Profil * |
#6 · Zasláno: 5. 5. 2011, 12:35:27
Kajman:
„A není lepší vyčíst si najednou všechny komentáře ke články do pole a pak dělat výpis rekurzí jen nad tímto php polem?“ A to mě zajímá. Je to rychlejší? Řeším něco v principu podobného a odpověď by mi ušetřila nemálo času. |
||
Louka Profil |
#7 · Zasláno: 5. 5. 2011, 12:43:38
Nevím, přiznám se, že jsem to nezkoumal. Asi ano, ale bude to náročnější na paměť, protože po každém volání můžu zavolat mysql_free_result() a tím to uvolnit, když bys měl článek s 600 komentáři, je možná snažší to "kouskovat" - i když je jasné, že pokud by nikdo na nikoho neodpovídal, tak výsledek bude totožný.
|
||
Louka Profil |
#8 · Zasláno: 5. 5. 2011, 12:57:36
No, nejspíš má Kajman_ pravdu, nevím. Jak to tedy je? Rád se nechám poučit.
|
||
ninja Profil |
#9 · Zasláno: 5. 5. 2011, 13:01:30
Záleží na konkrétním případu, ale většinou bude rychlejší načíst všechny komentáře najednou, jak píše Kajman_. Obecně stromová struktura lze řešit v SQL databázi několika způsoby, kdy rekurze je jen jeden z nich a často ne ten optimální.
|
||
__construct Profil |
#10 · Zasláno: 5. 5. 2011, 14:16:48 · Upravil/a: __construct
ninja:
Tu je odkaz na článok v češitne. Louka: Najefektívnejší spôsob je asi ukladanie do stromovej štruktúry. |
||
Louka Profil |
#11 · Zasláno: 5. 5. 2011, 14:56:03
__construct:
Díky, nastuduju si to, vypadá to zajímavě. |
||
Časová prodleva: 13 let
|
0