ハイ、
タイトルの通り、サブメニューのあるメニューを作りたいです。
だから、このようなもの:
- 親1
- サブ2
- サブ3
- サブ2
- 親2
これはすでに機能していますが、コードは見栄えがよくありません。
どうすればコードを改善できますか、それとももっとよく知っていますか?それから投稿してください。
これはコードです:
<?php
$le_content .= '<div id="main_menu">';
$sQuery_get_all_parents = " SELECT
menu.id,
menu.`name`,
menu.url,
menu.parent_id
FROM `menu`
WHERE
menu.actif = 1 AND
menu.parent_id = 0
ORDER BY
menu.volgorde ASC";
$rResultaat_get_all_parents = mysql_query($sQuery_get_all_parents) or die(mysqlError($sQuery_get_all_parents));
$menu_parents = array();
$menu_child_1 = array();
$counter = 0;
$counter_child_1 = 0;
$counter_child_2 = 0;
while($row = mysql_fetch_assoc($rResultaat_get_all_parents)){
$menu_parents[$counter]['id'] = $row['id'];
$menu_parents[$counter]['name'] = $row['name'];
$menu_parents[$counter]['url'] = $row['url'];
$menu_parents[$counter]['parent_id'] = $row['parent_id'];
$counter++;
}
$le_content .= '<ul id="main_menu_ul">';
foreach ($menu_parents as $menu_entry => $value) {
$le_content .= '<li><a href="'.ROOT_HREF.$value['url'].'" >'.$value['name'].'</a>';
$sQuery_get_first_children = " SELECT
menu.id,
menu.`name`,
menu.url,
menu.parent_id
FROM `menu`
WHERE
menu.actif = 1 AND
menu.parent_id = ".$value['id']."
ORDER BY
menu.volgorde ASC";
$rResultaat_get_first_children = mysql_query($sQuery_get_first_children) or die(mysqlError($sQuery_get_first_children));
$row_count = mysql_num_rows($rResultaat_get_first_children);
if($row_count != false){
$le_content .= '<ol>';
while($row = mysql_fetch_assoc($rResultaat_get_first_children)){
$menu_child_1[$counter_child_1]['id'] = $row['id'];
$menu_child_1[$counter_child_1]['name'] = $row['name'];
$menu_child_1[$counter_child_1]['url'] = $row['url'];
$menu_child_1[$counter_child_1]['parent_id'] = $row['parent_id'];
$counter_child_1++;
}
foreach ($menu_child_1 as $menu_entry_child_1 => $value_child_1) {
$le_content .= '<li><a href="'.ROOT_HREF.$value_child_1['url'].'" >'.$value_child_1['name'].'</a>';
$sQuery_get_second_children = " SELECT
menu.id,
menu.`name`,
menu.url,
menu.parent_id
FROM `menu`
WHERE
menu.actif = 1 AND
menu.parent_id = ".$value_child_1['id']."
ORDER BY
menu.volgorde ASC";
$rResultaat_get_second_children = mysql_query($sQuery_get_second_children) or die(mysqlError($sQuery_get_second_children));
$row_count = mysql_num_rows($rResultaat_get_second_children);
if($row_count != false){
$le_content .= '<ol>';
while($row = mysql_fetch_assoc($rResultaat_get_second_children)){
$menu_child_2[$counter_child_2]['id'] = $row['id'];
$menu_child_2[$counter_child_2]['name'] = $row['name'];
$menu_child_2[$counter_child_2]['url'] = $row['url'];
$menu_child_2[$counter_child_2]['parent_id'] = $row['parent_id'];
$counter_child_2++;
}
foreach ($menu_child_2 as $menu_entry_child_2 => $value_child_2) {
$le_content .= '<li><a href="'.ROOT_HREF.$value_child_2['url'].'" >'.$value_child_2['name'].'</a></li>';
}
$le_content .= '</ol>';
}
$le_content .= '</li>';
}
$le_content .= '</ol>';
}
$le_content .= '</li>';
}
$le_content .= '</ul></div>';
?>
最後に、私は $le_content をエコーします.....