Autor | Zpráva | ||
---|---|---|---|
nevim Profil * |
#1 · Zasláno: 8. 5. 2012, 18:37:57
Dobrý den,
pokouším se udělat seznam generovaný z databáze s "podpoložkami". Mám v mysql tabulku seznam_1 se sloupci id, nazev, poradi a rodic. Potřebuji docílit toho aby byly položky seřazeny podle pořadí (mám), a aby pod každou položkou která je uvedená jako rodic bylo jeho "dite". Např. id = 1; nazev = "prvni"; poradi = "1"; rodic = "2"; ______________________ id = 2; nazev = "druha"; poradi = "2"; rodic = "0"; Jak na to mám jít ? |
||
panther Profil |
#2 · Zasláno: 8. 5. 2012, 18:52:26
nevim:
co znamená pořadí? Druhá (s pořadím = 2) nemá rodiče, měla by tedy být první, ne? Ideálně si udělej to pole tak, aby už mělo danou strukturu: array (2 (id) => array('nazev' => 'druha', 'rodic' => 0, 'potomci' => array( 1 => array('nazev' => ...)))) |
||
nevim Profil * |
#3 · Zasláno: 8. 5. 2012, 18:55:50
Potřebuji aby byly položky seřazeny podle poradi (1, 2, 3, 4, atd ...), ale pokud je bude nějaká položka mít jako rodiče, tak aby byla vypsána pod nimy.
Např. - hlavní položka 1 s id 1 -- podpoložka s id 3 - hlavní položka s id 2 |
||
Darker Profil |
#4 · Zasláno: 8. 5. 2012, 19:53:25
Nějak takhle jsem chtěl koncipovat guestbook s reakcemi. Na konec jsem se na reakce vykašlal, takže kódem nepomohu, ale vypadalo by to takhle:
První select: SELECT name, text, id FROM `zpravy` WHERE replyto is NULL ORDER BY date DESC SELECT name, text, id FROM `zpravy` WHERE replyto >-1 ORDER BY date DESC $r = array(); while($rr = mysql_fetch_array($resp, MYSQL_ASSOC)) { if(!isset($r[$resp["id"]] ) $r[$resp["replyto"]] = array(); //Seznam podpolozek pro polozku $r[$resp["replyto"]][] = array($resp["nane"], $resp["text"], $resp["id"]); } Udělal bych pak toto: for($i=0; $i<count($zpravy); $i++) { echo "<div>{$zpravy[$i]["text"]}</div>"; if(isset($r[$zpravy[$i]["id"]])){ /* cyklem vypsat podpolozky - $r[$zpravy[$i]["id"]][iterator]["text"]*/ } } |
||
Časová prodleva: 13 let
|
0