
Merhaba,
Yukarıdaki gibi bir sınırsız katagori tablom var. Bu katagorileri aşağıdaki kodları kullanarak aşağıdaki gibi listeleyebiliyorum. Örneğin Posttan aksesuar id si geldiğinde aksesuara bağlı tüm alt katagorilerin ve onların alt katagorilerinin adını veya id lerini bir diziye veya ayrı ayrı değişkenlere atamak istiyorum. Bunu nasıl yapabilirim.
$katagori_listesi = $baglan->query("SELECT * FROM katagoriler", PDO::FETCH_OBJ)->fetchAll();
function buildTree($elements, $parentId =0){
$branch = array();
foreach ($elements as $element){
if ($element->parent_id == $parentId){
$children = buildTree($elements, $element->id);
if($children){
$element->children = $children;
}else{
$element->children = array();
}
$branch[] = $element;
}
}
return $branch;
}
function drawElements($items){
echo "<ul>";
foreach ($items as $item){
echo "<li>$item->title</li>";
if(sizeof($item->children) > 0){
drawElements($item->children);
}
}
echo "</ul>";
}
drawElements(buildTree($katagori_listesi));
Bunu yapabilmek için ilk fonksiyona parent_id olarak 1 verdim ve ikinci fonksiyonu aşağıdaki gibi uyarladım. Ancak ana katagorileri gösteriyor paspasa ait alt katagorileri göstermiyor.
function alt_katagoriler($icerik){
$alt=array();
foreach ($icerik as $item) {
$title = $item->title;
array_push($alt,$title);
if(sizeof($item->children) > 0){
alt_katagoriler($item->children);
}
}
return $alt;
}
print_r(alt_katagoriler(buildTreeS($katagori_listesi))); Yukarıdaki fonksiyorunun çıktısı: Array ( [0] => Paspas [1] => Bagaj Havuzu )