Dochterpagina systeem
Ik ben bezig met een site waarop een sitemap moet komen. De site is volledig databasegericht.
Ik heb een tabel 'paginas'. Elke pagina heeft (om het even simpel te houden) een id (uniek nummer), een naam en eventueel een moederpagina. Die moederpagina is het id van een andere pagina.
Nu wil ik een lijstje maken met alle pagina's met elk al hun dochterpagina's en de dochterpagina's van die dochterpagina's enzovoorts. Dit is opzich niet moeilijk te maken, het probleem is alleen dat ik het hier heb over oneindig niveau's van pagina's.
Weet iemand hoe ik dit met query's en statements kan oplossen?
PS. het lisjtje moet beginnen met pagina's die moederpagina '0' hebben... dus alle hoofdpagina's.
Bij voorbaat dank,
Koen Bressers.
Of wil je als je op pagina B bent ook een link hebt naar pagina A en C ?
Bedoel je zoiets?
Pagina 1
Pagina 1.1
Pagina 1.2
Pagina 1.2.1
Pagina 1.2.2
Pagina 1.3
Pagina 2
Pagina 2.1
Pagina 3
Pagina 4
Pagina 4.1
Dus elke pagina met zijn dochterpagina(s) en die dochterpagina(s) ook weer met hun dochterpagina's en ga zo maar door...
recursieve functie er op toe...
Ik zou zeggen, pas een Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
echo "<b>Sitemap</b><p>";
function Select($var)
{
$pag_select = mysql_query("SELECT * FROM paginas WHERE moederpagina = '$var'") or die(mysql_error());
if(mysql_num_rows($pag_select) > 0){
while($pag = mysql_fetch_array($pag_select)){
echo $pag['nederlands_naam']."<br>";
Select( $pag['id'] );
}
}
}
Select(0);
?>
echo "<b>Sitemap</b><p>";
function Select($var)
{
$pag_select = mysql_query("SELECT * FROM paginas WHERE moederpagina = '$var'") or die(mysql_error());
if(mysql_num_rows($pag_select) > 0){
while($pag = mysql_fetch_array($pag_select)){
echo $pag['nederlands_naam']."<br>";
Select( $pag['id'] );
}
}
}
Select(0);
?>
Groetjes...
2. Niet or die() gebruiken.
3. Om pagina's te laten inspringen kan je bv. een niveau-parameter meegeven. Dan kan je daarmee in een for-statement bijvoorbeeld door middel van tabs/spaties/tabellen inspringen.