Hozzászólás megjelenítési lehetőségek (Beágyazott)

Egy valami ilyen megoldast szeretnek csinalni mint itt is, a hozaszolasok attol fuggoen hogy melyik uzenetre lettek valaszkent irva jobban vagy kevesbe vannak behuzva...

Az sql tablaban gondolom van egy hozzaszolas_id meg egy melyikre_a_valasz_id ami a hozzaszolas_id -re mutat, de hogyan kell ezt szepen lekerdezni? Valami otletet szeretnek hogy is kell elindulni ... Valahonnan kellene a lekerdezes valaszaban egy adat a beagyazas melysegerol is ami alapjan a div -ekkel letre tudnam hozni magat a behuzasokat ...

Valami pelda vagy link vagy magyarazat kellene hogyan kell ilyet csinalni.

Hozzászólások

rekurzív függvény, benne egy ciklussal, ami adott hsz válaszait keresi.
Ezt megteheted akár SQL-ben, akár PHP-ben (az egyben lekérdezett hozzászólások tömbjén).
Hogy melyik a jobb...? Sok mindentől függ. Ebben az esetben talán a PHP.

---
"A megoldásra kell koncentrálni nem a problémára."

Olyasmit nem hasznalok, csak sima mysql, php, apache ...Egyedul amit nevezzuk valami hasonlonak az a prototype de az meg kliensoldalon van ...Gondolom a drupalban is van valami kesz modul ami hasonlo ahoz ami nekem kell de az is felejtos szoval sem drupal sem jomla sem stb....

Az elso hozzaszolas alapjan mar elkezdtem valami kodot irni de meg nem jutottam olyan szintre hogy mukodjon is de majd beteszem ide es meglatjuk mit is sikerult irnom es hogy az mennyire jo vagy rossz ...

SQl-ben nem tudom megirni mert annyi tudasom nincs, de a neten keresgelve talatam par leirast es egy fuggvenyt ami a celjaimnak nagyjabol megfelelne, csak az a gond vele hogy ez tobbszor is meghivja az sql select -et de egy proba tabalval kiprobaltam es mukodne...

Az a kerdesem hogy haggyam igy, vagy a sok select-tol azert jobb lenne ha a lekerdezest a tablabol csak egyszer vegeznem el es utanna a valasztombon vegezne el rekurzivan a sorbarakast? Sebesseg es eroforras tekinteteben mi lene a jobb megoldas? Tetelezzuk fel hogy a tablaban sok sor lessz...


function list_cat($parent, $level=0) {
$sql = "SELECT id, p_id,name FROM sorbarakas_torolheto
WHERE p_id = '$parent'
ORDER BY id";
$res = mysql_query($sql) or die(mysql_error());
while (list($id, $p_id, $name) = mysql_fetch_row($res)) {

echo "<div style=\"border:0px none; padding-left:30px;\">";
echo "<div style=\"border:1px solid black; padding:10px; margin-bottom:10px;\">";
printf("%02d %02d %s
",$id,$p_id,$name);
echo "</div>";
list_cat($id, $level+1);
echo "</div>";
}
}

Ez hol hívja meg többször a select-et? Szerintem csak 1x hívódik, mégpedig a mysql_query() hívásban, ami ha ad vissza eredményt, akkor az egy tábla szerű ojjektum, ha nem, akkor false. A while ciklus pedig ezen az eredményhalmazon gurgulázik végig.

ok, megtaláltam...

--
A gyors gondolat többet ér, mint a gyors mozdulat.