Giriş yap
Breadcrumb sitilinde Recursive kategori listeleme.

Merhaba Arkadaslar biraz arastirma yaptim ancak Recursive mantigini bir turlu cozemedim,
Diyelim ki boyle bir verimiz var


<?php

$categories = [

    [
        'id' => 1,
        'name' => 'Main Category',
        'parent_id' => 0
    ],
    [
        'id' => 2,
        'name' => 'Main Category 1',
        'parent_id' => 0
    ],
    [
        'id' => 3,
        'name' => 'Main Category 2',
        'parent_id' => 0
    ],
    [
        'id' => 4,
        'name' => 'Alt Category',
        'parent_id' => 1
    ],
    [
        'id' => 5,
        'name' => 'Alt Category 1',
        'parent_id' => 4
    ]

];


Ve çıktısının bu şekilde olmasını istiyorum..
Tabi ki de Recursive fonksiyon olma koşu ile.

Main Category
Main Category > Alt Category
Main Category > Alt Category > Alt Category 1
Main Category 1
Main Category 2

mrknowitall
157 gün önce

Merhaba arkadaşlar uzun uğraşlar sonucu yaptım ve cevabı sizinle paylaşmak istedim.

Diyelim database kayıtları yukardaki array gibi.

View bölümü bu şekilde olacak...



  <?php
                                if ($row['category_parent_id'] > 0) {

                                    echo breadcrumbCategory($row['category_name'], $row['category_parent_id'], $row['category_id']);

                                    //print_r($findCategory);
                                } else {

                                    echo $row['category_name'];
                                }


                                ?>

Recursive Fonksiyonda bu sekilde olacak/

<?php
function breadcrumbCategory($category_name = null, $parent_id = 0, $category_id = null)
{
    $html = '';
    global $db;
    $array = $db->from('download_categories')->where('category_id', $parent_id, '=')->all();
    foreach ($array as $category) {
        $html .= breadcrumbCategory($category['category_name'], $category['category_parent_id']);
        $html .= $category['category_name'];
        $html .= ' > ';
        if ($category_id) {
            $results = $db->from('download_categories')->where('category_id', $category_id, '=')->all();
            foreach ($results as $result) {
                $html .= $result['category_name'];
            }
        }
    }

    return $html;
}


Onemli not , Kopyala yapistir ile calismaz kodlari kendinize gore uyarlamaniz gerekir...

Nasıl akıllıca soru sorulur?
Daha hızlı ve kaliteli cevaplar almak için önce nasıl soru sorulacağını bilmeniz gerekir. Eğer bilmiyorsanız bu yazı serisini okuyun.

Cevap yaz

Günlük Film Tavsiyesi