Ik ben bezig met het maken van een navigatiesysteem. Alle boomstructuur voorbeelden geven allemaal in hun functie al HTML terug, door gewoon echo's te gebruiken. Dat lukt mij ook prima, maar dat wil ik echter niet. Ik wil de navigatie structuur namelijk in een multidimensionale array teruggeven.
Op basis van een voorbeeld om een directorystructuur in een multidimensionale array te proppen, heb ik mijn code geschreven. (http://www.php.net/dir , post door fabrizio)
Ik sla gegevens op de volgende manier in de database op:
De navigatiestructuur haal ik op met onderstaande code en haal ik op door getNavigationStructure() aan te roepen.
var_dump(getNavigationStructure()); resulteert in het volgende:
Zoals je dus ziet haalt hij de navigatiestructuur maar in 1 "lijn" goed op. De andere array elementen kloppen wel op de goede positie, maar hebben ze echter allemaal waarde NULL...
Iemand idee wat fout zit?
Op basis van een voorbeeld om een directorystructuur in een multidimensionale array te proppen, heb ik mijn code geschreven. (http://www.php.net/dir , post door fabrizio)
Ik sla gegevens op de volgende manier in de database op:
code:
1
2
3
4
5
6
7
8
9
10
11
| nnavid nparentid snavtitle 1 0 Home 2 0 Arbeidsintegratie 3 0 Industrie 4 0 Groen en Dienstverlening 5 1 Personeelszaken 6 1 Concerninfo 7 1 Financien 8 5 ABC van de arbeidsvoorwaarden 9 5 Formulieren 10 5 PZ Info |
De navigatiestructuur haal ik op met onderstaande code en haal ik op door getNavigationStructure() aan te roepen.
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
26
27
| function getNavigationStructure() { return $this->getNavigationChildren(0); } function getNavigationChildren($nparentId) { if (!is_numeric($nparentId)) { return false; } else { // retrieve all children of $nparentId $qry = 'SELECT nnavid, nparentid, snavtitle ' . 'FROM navigation ' . 'WHERE nparentid = ' . $nparentId; $result = mysql_query($qry); while ($row = mysql_fetch_array($result)) { $a_navigation[] = $row; $a_navigation[$row['nnavid']] = $this->getNavigationChildren($row['nnavid']); } return $a_navigation; } } |
var_dump(getNavigationStructure()); resulteert in het volgende:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| array(5) { [0]=> array(6) { [0]=> string(1) "1" ["nnavid"]=> string(1) "1" [1]=> string(1) "0" ["nparentid"]=> string(1) "0" [2]=> string(4) "Home" ["snavtitle"]=> string(4) "Home" } [1]=> array(4) { [0]=> array(6) { [0]=> string(1) "5" ["nnavid"]=> string(1) "5" [1]=> string(1) "1" ["nparentid"]=> string(1) "1" [2]=> string(15) "Personeelszaken" ["snavtitle"]=> string(15) "Personeelszaken" } [5]=> array(4) { [0]=> array(6) { [0]=> string(1) "8" ["nnavid"]=> string(1) "8" [1]=> string(1) "5" ["nparentid"]=> string(1) "5" [2]=> string(29) "ABC van de arbeidsvoorwaarden" ["snavtitle"]=> string(29) "ABC van de arbeidsvoorwaarden" } [8]=> NULL [9]=> NULL [10]=> NULL } [6]=> NULL [7]=> NULL } [2]=> NULL [3]=> NULL [4]=> NULL } |
Zoals je dus ziet haalt hij de navigatiestructuur maar in 1 "lijn" goed op. De andere array elementen kloppen wel op de goede positie, maar hebben ze echter allemaal waarde NULL...

Iemand idee wat fout zit?
[ Voor 10% gewijzigd door Speed_Sheep op 02-08-2004 16:54 ]