PHP expert |
|
probeer eens iets als het volgende:
SELECT * FROM `menu` ORDER BY `parentID`,`id` ASC
en dan iets als:
<?
$sSpaces = '';
$aSpacesID = array();
$iLastID = 0;
while($aRow = .. )
{
if($aSpacesID[max(array_keys($aSpacesID))] == $aRow['parentID'])
{
// de huidige rij hoort nog in dit menu.
}
elseif($aRow['parentID'] == $iLastID)
{
$sSpaces .=' ';
$iSpacesID = $iLastID;
}
else
{
// we zijn niet een menu dieper gekomen, en niet gelijk gebleven, we moeten dus naar beneden:
unset($aSpacesID[max(array_keys($aSpacesID))]);
$sSpaces = substr($sSpaces,0,-6);
}
echo $sSpaces.$aRow['name'];
}
?>
<? $sSpaces = ''; $iLastID = 0; while($aRow = .. ) { { // de huidige rij hoort nog in dit menu. } elseif($aRow['parentID'] == $iLastID) { $sSpaces .=' '; $iSpacesID = $iLastID; } else { // we zijn niet een menu dieper gekomen, en niet gelijk gebleven, we moeten dus naar beneden: $sSpaces = substr($sSpaces,0,-6); } echo $sSpaces.$aRow['name']; } ?>
|