Php Sınırsız Kategori Menü Düzeni
arkadaşlar sadece bir tane olay ı çözemedim bir türlü
<?php
$result = $db->query("select * from menu",PDO::FETCH_ASSOC)->fetchAll();
//iki boyutlu kategori ve üst kategori dizisini tanımla
$category = array(
'categories' => array(),
'parent_cats' => array()
);
foreach($result as $row){
$category['categories'][$row['id']] = $row;
$category['parent_cats'][$row['ustid']][] = $row['id'];
}
echo buildCategory(0, $category);
?>
burda header.php de kullanıyorum.
<?php
function buildCategory($parent, $category) {
$html = "";
if (isset($category['parent_cats'][$parent])) {
foreach ($category['parent_cats'][$parent] as $cat_id) {
if (!isset($category['parent_cats'][$cat_id])) {
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." </a></li>n";
}
if (isset($category['parent_cats'][$cat_id])) {
// if ( $category['categories'][$cat_id]['ustid'] > 0 ) {
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." <span class='fa fa-caret-down m-0'></span></a>n <ul class='sub-menu'>n";
}else{
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." <i class='fa fa-angle-right float-right mt-1 d-none d-lg-block'></i></a>n <ul class='sub-menu'>n";
}
$html .= buildCategory($cat_id, $category);
$html .= "</ul></li> n";
}
}
}
return $html;
}
?>
buda fonksiyon tarafı // ile işaretlediğim sorgu ya ne yazmam gerekiyor da
ona göre ilk menü fa-down çocuklarında çocuk varsa fa-arrow-right gelsin.
deli etti iyice çıkamadım işin içinden
id si varsa üstid ye eşit mi
vb türevlerini bir farklı şekilde denedim fakat bir türlü ordaki koşulu düzenleyemedim.
sql yapısı
id ustid menu link
soru sorarken yazdım ya :)
<?php
$result = $db->query("select * from menu",PDO::FETCH_ASSOC)->fetchAll();
//iki boyutlu kategori ve üst kategori dizisini tanımla
$category = array(
'categories' => array(),
'parent_cats' => array()
);
foreach($result as $row){
$category['categories'][$row['id']] = $row;
$category['parent_cats'][$row['ustid']][] = $row['id'];
}
echo buildCategory(0, $category);
?>
PHP
burda header.php de kullanıyorum.
<?php
function buildCategory($parent, $category) {
$html = "";
if (isset($category['parent_cats'][$parent])) {
foreach ($category['parent_cats'][$parent] as $cat_id) {
if (!isset($category['parent_cats'][$cat_id])) {
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." </a></li>n";
}
if (isset($category['parent_cats'][$cat_id])) {
// if ( $category['categories'][$cat_id]['ustid'] > 0 ) {
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." <span class='fa fa-caret-down m-0'></span></a>n <ul class='sub-menu'>n";
}else{
$html .= "<li><a href=". $category['categories'][$cat_id]['link'].">".$category['categories'][$cat_id]['menu']." <i class='fa fa-angle-right float-right mt-1 d-none d-lg-block'></i></a>n <ul class='sub-menu'>n";
}
$html .= buildCategory($cat_id, $category);
$html .= "</ul></li> n";
}
}
}
return $html;
}
?>