Kırıntı almak için PHP recursive fonksiyon

0 Cevap php

Bu birkaç saat geçirdim ve bazı uzman yardımına ihtiyacım var.

Böyle bir tablo var:

[id] [name] [parent_id]
1    fruits  0
2    orange  1
3    lemon   2
4    steak   0

Ben limon gittiğinizde, ben kırıntı gibi olmak istiyorum:

Ana Sayfa> Meyve> Portakal> Limon

Ve limon bir bağlantı olması için bir bağlantı ama gerisi olmamak.

Herhangi bir öneriniz?

Ben buldum en iyi bu ama bir bağlantı içine her şeyi yapar.

    function createPath($id, $category_tbl) {

        $s = "SELECT * FROM ".$category_tbl." WHERE ID = $id";
        $r = mysql_query($s);
        $row = mysql_fetch_array($r);

        if($row['parent_id'] == 0) {
            $name = $row['name'];
            return "<a href='index.php'>Admin</a> > <a href='index.php?folder_id=$id'>".$name."</a> > ";
        } else {
            $name = $row['name'];
            return createPath($row['parent_id'],$category_tbl). " <a href='index.php?folder_id=$id'>".$name."</a> >";
        }
    }

Erwin aşağıda Yanıt Ben o iş yapmak için gerekenleri bana verdi.

function createPath($id, $category_tbl, $except = null) {
    $s = "SELECT * FROM ".$category_tbl." WHERE ID = $id";
    $r = mysql_query($s);
    $row = mysql_fetch_array($r);
    if($row['parent_id'] == 0) {
        $name = $row['name'];
        if(!empty($except) && $except == $row['id']) {
            return "<a href='index.php'>Admin</a> &raquo; ".$name."";
        }
        return "<a href='index.php'>Admin</a> &raquo; <a href='index.php?folder_id=$id'>".$name."</a> &raquo; ";
    } else {
        if(!empty($except) && $except == $row['id']) {
            $name = $row['name'];
            return createPath($row['parent_id'],$category_tbl, false). " $name";
        } 
        $name = $row['name'];
        return createPath($row['parent_id'],$category_tbl, false). " <a href='index.php?folder_id=$id'>".$name."</a> &raquo;";
    }
}

0 Cevap