Alle subpages en sub-subpages ophalen
stel:
- hoofdpagina 1
-- subpagina 1
-- subpagina 2
--- sub subpagina 1
--- sub subpagina 2
-- subpagina 3
--- sub subpagina 3
etc. etc.
Normaal zou ik het zo doen
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$query_menu = sprintf("SELECT pagina_id, naam, seo_url, intern, extern, is_menu, status FROM paginas WHERE hoofdpagina_id='%s' AND taal_id='%s' AND is_menu='%s' AND status='%s' ORDER BY sorteervolgorde",
mysql_real_escape_string('0'),
mysql_real_escape_string($taal_id),
mysql_real_escape_string('1'),
mysql_real_escape_string('1')
);
mysql_real_escape_string('0'),
mysql_real_escape_string($taal_id),
mysql_real_escape_string('1'),
mysql_real_escape_string('1')
);
Maar nu moet ik dus elke keer een nieuwe while lus gaan maken en weet ik niet hoe diep de diepste pagina zit.
Kan ik dit niet in 1 keer doen op 1 of andere manier?
Gewijzigd op 09/10/2012 11:50:55 door John D
Hoe is je database ingedeeld? Zijn de sub pagina's gelinked aan de boven pagina's? Staan ze allemaal los in je database?
Toevoeging op 09/10/2012 13:52:23:
Uiteindelijk is het hier mee gelukt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function maakMenu($parent = 0){
$html = '<ul>';
$query = mysql_query("SELECT pagina_id, naam, seo_url FROM paginas WHERE hoofdpagina_id = '" . $parent . "'");
while($rij = mysql_fetch_assoc($query)){
$huidig_id = $rij['pagina_id'];
$html .= '<li><a href="' . $rij['pagina_id'] . '/' . $rij['seo_url'] . '">' . $rij['naam'] . '</a>';
$has_sub = '';
$has_sub = mysql_num_rows(mysql_query("SELECT pagina_id FROM paginas WHERE hoofdpagina_id = '" . $huidig_id . "'"));
if($has_sub){
$html .= maakMenu($huidig_id);
}
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}
$html = '<ul>';
$query = mysql_query("SELECT pagina_id, naam, seo_url FROM paginas WHERE hoofdpagina_id = '" . $parent . "'");
while($rij = mysql_fetch_assoc($query)){
$huidig_id = $rij['pagina_id'];
$html .= '<li><a href="' . $rij['pagina_id'] . '/' . $rij['seo_url'] . '">' . $rij['naam'] . '</a>';
$has_sub = '';
$has_sub = mysql_num_rows(mysql_query("SELECT pagina_id FROM paginas WHERE hoofdpagina_id = '" . $huidig_id . "'"));
if($has_sub){
$html .= maakMenu($huidig_id);
}
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}