Ik zit met een redelijk complex probleem. Ik ben een fly-out menu aan het maken, die gedreven moet worden door de database. Hier is de code die het mogelijk moet maken:

<?php

function displayMenu($dID)

{
echo "<ul>";
$q = "SELECT * from db WHERE parent_id = $dID ORDER BY id";
$resultaat = mysql_query($q) or die(mysql_error());

while ($row = mysql_fetch_array($resultaat)) {


if ($row['parent_id'] > 0) // is child

echo "<ul><li><a href=\"topic.php?topic_id=".$row['topic_id']."&parent_id=".$row['parent_id']."\">".$row['topic_name']."</a></li></ul>";

else // is parent

echo "<li><a href=\"topic.php?topic_id=".$row['topic_id']."&parent_id=".$row['parent_id']."\">".$row['topic_name']."</a></li>";

displayMenu($row['topic_id']);
}

echo "</ul>";
}
displayMenu(0);

?>

Nu mijn probleem: Als ik een groep 'children' wil weergeven, moet daarvoor een <ul> komen te staan, en daarachter een </ul>. Dus niet voor en achter iedere child. Het zou er ideaal zo uit moeten komen te zien:

<?

<ul>
<li>Parent 1</li>
<li>Parent 2</li>
<ul><li>Child 1</li>
<li>Child 2</li>
<li>Child 3</li></ul>
<li>Parent 3</li>
<ul><li>Child 4</li>
<li>Child 5</li>
<ul><li>Child 6</li>
<li>Child 7</li></ul>
<li>Child 8</li></ul>
<li>Parent 4</li>
</ul> ?>

Ik hoop dat het een beetje duidelijk is. Ik zit echt met mijn handen in het haar.

Reageren