[PHP] Menuitems uit db halen [Template]

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 21-09 18:54
hallo,

ik wil in een functie m'n menu uit de database halen, dit gaat als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function getMenu() {
    // now fetch the menu
    $mQuery = "SELECT
                        menuID,
                        menuName,
                        menuIdentefier
               FROM
                        menu
                ";
    
    $fQuery = mysql_query($mQuery) or die (mysql_error());

    // nog put evreything in place
    while ($fetchQuery = mysql_fetch_array($fQuery))
    {    
        $gegevens = array (
               'ident' => $fetchQuery['menuIdentefier'],
               'menuname' => $fetchQuery['menuName']
        );
    }
    return $gegevens;
}


Nu gooit hij alles in $gegevens.

Nu wil ik dit impleteren in m'n templateset. Zodat in mijn templateset alles netjes gelist word.

Mijn templatesets worden geassigns met variable
PHP:
1
$header->AddVariable("menu", getMenu());


Nu snap ik niet hoe ik dit kan implenteren, want m'n templateengine heeft geen [foreach] functie.
Het probleem is dus hoe krijg ik al die gegevens netjes in een row like:

<a href="$identefier"> $name </a> <br />

want zo moet het in de templatesets komen.

UPDATE

[foreach array="~menu~" as="gegevens"]
%gegevens%
[/foreach]

Hier krijg ik de foutmelding unidentified index ~menu~ terwijl menu wel geset is.

[ Voor 20% gewijzigd door RedHat op 17-10-2005 19:45 ]


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Misschien even erbij zetten welke template-engine je gebruikt? :) En in bovenstaand voorbeeld gebruik je twee verschillende syntaxes voor een variabele: ~naam~ en %naam%. Hoort dat zo?

[ Voor 48% gewijzigd door MisterData op 17-10-2005 18:50 ]


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 21-09 18:54
nee, ik gebruik TPLPHP als engine, jouw engine :+

die %gegevens% is reeds aangepast naar ~gegevens~ schoonheidsfoutje mbt het ontbreken van [NOPARSE] functie en de %én in mijn template die hij dan pakt :( Dus hem omgebouwt naar ~ maar het liefst nog naar { } maar dat lukte me niet :)

zelfde als [blaat] in een javascript die hij nog steeds parst :)

[ Voor 43% gewijzigd door RedHat op 17-10-2005 18:56 ]


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 21-09 18:54
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function getMenu() {
    // now fetch the menu
    $mQuery = "SELECT
                        menuID,
                        menuName,
                        menuIdentefier
               FROM
                        menu
                ";
    
    $fQuery = mysql_query($mQuery) or die (mysql_error());

    // nog put evreything in place
    while ($fetchQuery = mysql_fetch_array($fQuery))
    {    
        $gegevens = array (
               'ident' => $fetchQuery['menuIdentefier'],
               'menuname' => $fetchQuery['menuName']
        );
    }
    return $gegevens;
}


is $gegevens zowieso wel aanroepbaar? lijkt mij niet? volgens mij is dat de fout.

code:
1
Notice: Undefined variable: gegevens in /var/www/wcs/index.php on line 5


gegevens is dus helemaal niet 'bekend'

[ Voor 14% gewijzigd door RedHat op 17-10-2005 19:58 ]


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 21-09 18:54
De oplossing is gevonden...

ik heb onder de functie:
PHP:
1
$gegevens = getMenu();


gezet,

in de template:

code:
1
2
3
    [foreach array="gegevens" as="data"]
<a href="index.php?ident=%data.ident%"> %data.menuname% </a> <br />
[/foreach]


en dat werkte...