Hmm, ik geloof dat er online voorbeelden beschikbaar moeten zijn over hoe je dit kunt bereiken. Sommigen van hen kunnen zelfs praten over nieuwe manieren om hiërarchische gegevens op te slaan en u zult de metingen interessant vinden.
Hoe dan ook, dit codefragment, gebaseerd op recursie, kan u helpen uw HTML te bereiken.
<?php
// recursive function to generate the category HTML
function generateTree ($parent) {
global $arrPCat, $arrCat;
if (array_key_exists($parent, $arrPCat)) {
echo '<ul' . ($parent == 0 ? ' class="tree"' : '') . '>';
foreach ($arrPCat[$parent] as $arrC) {
echo '<li>' . $arrC['name'] . '</li>';
generateTree($arrC['id']);
}
echo '</ul>';
}
}
// read all categories from the DB
$rs = mysql_query('SELECT `cl`.`id`, `cl`.`name`, `c`.`position`, IFNULL(`c`.`parent_id`, 0) AS `parent_id`
FROM `categories_locale` `cl`
LEFT JOIN `categories` `c` ON `cl`.`id` = `c`.`id`
ORDER BY `c`.`parent_id` , `c`.`position`');
while ($r = mysql_fetch_assoc($rs)) {
// store parent and its children into the $arrPCat Array
$arrPCat[$r['parent_id']][] = Array (
'id' => $r['id'],
'name' => $r['name']
);
}
generateTree (0); // now generate the HTML for the category tree
?>
Ik hoop dat het helpt!