Saya memiliki kode ini, ini adalah pohon kategori rekursif dengan banyak pilihan;

Saya menggunakan kelas ezsql,

$query = $db->get_results("SELECT * FROM categories");

function Cats($query, $mainid = 0)
{
    foreach($query as $category)
    {
        if($category->maincategoryid == $mainid)
        {
        echo '<option>';
        if($category->maincategoryid != 0){echo '-';}
        echo $category->categorytitle.'</option>';
        echo Cats($query,$category->categoryid);
        }
    }
}

echo '<select multiple>';
Cats($query);
echo '</select>';

Saya ingin pohon seperti ini tetapi masalah tanda hubung, tanda hubung diulang hanya satu kali setiap loop.

 Sites
    - Google
    -- Gmail
    -- Youtube
    - Yandex
    -- Mail
    -- Yandisk
    -- Maps
    Program
    - Graphic
    -- Adobe
    -- Corel Draw
    - Browser
    -- Internet Explorer
    -- Firefox
    -- Chrome
0
Koray 29 Maret 2019, 22:25

1 menjawab

Jawaban Terbaik

Saya telah membuat beberapa penyesuaian pada kode, coba ini:

function Cats($query, $mainid = 0, $level = 0)
{
    foreach($query as $category)
    {
        if($category->maincategoryid == $mainid)
        {
            echo '<option>';
            if($category->maincategoryid != 0){echo str_repeat('-', $level);}
            echo $category->categorytitle;
            echo '</option>';
            echo Cats($query,$category->categoryid, ($category->maincategoryid === 0) ? 1 : ($level + 1));
        }
    }
}

echo '<select multiple>';
Cats($objects);
echo '</select>';
0
Abdelkarim EL AMEL 29 Maret 2019, 20:26