Ik probeer een dynamische unordered list te bouwen. Dat lukt door gebruik te maken van het modified preorder tree traversal algorithm.
Ik heb echter 2 tabellen; 1 tabel categorieën, waarin ik twee kolommen (left / right) heb opgenomen voor het algoritme. De andere tabel (feeds) heeft een kolom cat_id die naar het id van de categorie verwijst. Feeds kunnen in elke catgorie voorkomen, op elke diepte.
Mijn huidige code:
Met bovenstaande code, krijg ik netjes een nested unordered list. (de code verdient geen schoonheidsprijs) Ik loop vast op het toevoegen van de feeds aan deze unordered list. De data in de tabel feeds verschilt te veel van de data in de tabel categorieen om ze samen in één tabel te zetten.
Iemand een pointer of duwtje hoe ik de data uit de tabel feeds mee krijg?
Ik heb echter 2 tabellen; 1 tabel categorieën, waarin ik twee kolommen (left / right) heb opgenomen voor het algoritme. De andere tabel (feeds) heeft een kolom cat_id die naar het id van de categorie verwijst. Feeds kunnen in elke catgorie voorkomen, op elke diepte.
Mijn huidige code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| $aMenu = $oDatabase->fetchAll("SELECT node.name AS name, COUNT(1) AS diepte FROM rsscategories node, rsscategories parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.id ORDER BY node.lft"); $sTree = ''; $iCounter = 0; foreach ($aMenu as $aTree){ if ($iCounter == $aTree['diepte']){ $sTree .= '</li>' . "\n" . str_repeat(' ', $aTree['diepte']) . '<li>' . $aTree['name']; } else if ($iCounter < $aTree['diepte']) { $sTree .= "\n" . str_repeat(' ', $aTree['diepte']) . '<ul>'; $sTree .= "\n" . str_repeat(' ', $aTree['diepte']) . '<li>' . $aTree['name']; } else { $sTree .= '</li>' . "\n" . str_repeat(' ', $aTree['diepte']) . '</ul>'; } $iCounter = $aTree['diepte']; } $sTree .= "\n" . str_repeat('</li></ul>', $iCounter); echo $sTree; |
Met bovenstaande code, krijg ik netjes een nested unordered list. (de code verdient geen schoonheidsprijs) Ik loop vast op het toevoegen van de feeds aan deze unordered list. De data in de tabel feeds verschilt te veel van de data in de tabel categorieen om ze samen in één tabel te zetten.
Iemand een pointer of duwtje hoe ik de data uit de tabel feeds mee krijg?
[ Voor 25% gewijzigd door orf op 07-02-2006 13:22 ]