Ik probeer een lijst te genereren voor een dropdown menu, het betreft hier categorieën met een oneindige hiërarchische structuur. De volgende functie heb ik niet zelf gemaakt, ik begrijp het wel maar het lukt me niet om het dusdanig aan te passen dat ik een geneste structuur krijg.
Snelheid is niet zo'n issue, ik weet zo geen nettere oplossing suggesties zijn altijd welkom. Wat ik nu krijgen is gewoon een platte lijst
- Categorie 1
- Sub in categorie 1
- Sub 2 in categorie 1
- Categorie 2
- Sub in categorie 2
- Sub 2 in categorie 2
maar dat moet dus zo worden
- Categorie 1
---- Sub in categorie 1
------- Sub 2 in categorie 1
- Categorie 2
---- Sub in categorie 2
------- Sub 2 in categorie 2
Zit nu al drie uur aan te klooien maar ik heb geen idee hoe ik dit moet realiseren. Ik weet dat dit niet de meeste nette oplossing is met deze recursieve functie maar opdat snelheid niet zo'n issue is lijkt me dit toch het makkelijkst, nu alleen nog een geneste structuur.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function lijst($id = 0, $subject = 0, $replyto = 0, $count_total) { $query = mysql_query("SELECT id, naam, parent FROM tabel WHERE parent = $id ORDER BY orderid ASC") or die (mysql_error()); static $count_total = 0; while(list($m_id, $m_subject, $m_replyto) = mysql_fetch_row($query)) { $count_total++; echo $m_id." - ".$m_subject." - ".$m_replyto."<br />"; lijst($m_id, $m_subject, $m_replyto, $count_total); } } lijst(1,0,0,0); |
Snelheid is niet zo'n issue, ik weet zo geen nettere oplossing suggesties zijn altijd welkom. Wat ik nu krijgen is gewoon een platte lijst
- Categorie 1
- Sub in categorie 1
- Sub 2 in categorie 1
- Categorie 2
- Sub in categorie 2
- Sub 2 in categorie 2
maar dat moet dus zo worden
- Categorie 1
---- Sub in categorie 1
------- Sub 2 in categorie 1
- Categorie 2
---- Sub in categorie 2
------- Sub 2 in categorie 2
Zit nu al drie uur aan te klooien maar ik heb geen idee hoe ik dit moet realiseren. Ik weet dat dit niet de meeste nette oplossing is met deze recursieve functie maar opdat snelheid niet zo'n issue is lijkt me dit toch het makkelijkst, nu alleen nog een geneste structuur.
[ Voor 17% gewijzigd door Verwijderd op 20-04-2003 15:25 ]