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.
957 views