Hoi iedereen,

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.
Kan je het nog wat duidelijker maken ?
Of wil je als je op pagina B bent ook een link hebt naar pagina A en C ?
$sql = "SELECT * FROM paginas WHERE moeder = '0'";
Bedoel je zoiets?
Ik wil een lijstje

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...
Ik zou zeggen, pas een recursieve functie er op toe...
Ik heb nu dit. Nu wil ik graag inspringen per niveau paginas. (Dus dat dochterpagina's verder naar rechts staan als gewone pagina's.

<?

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);

?>
Laat maar ik heb 't al werken...

Groetjes...
1. Variabelen buiten quotes.
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.

Reageren