Kırıntıları oluşturmak için recursive fonksiyon

2 Cevap php
function createPath($id, $category_tbl, $path) {

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

    if($row['PARENT_ID'] == 0) {
        $path .=$row['TITLE'].'-';
    }
    else {
        $path .='-'.$row['TITLE'];
        createPath($row['PARENT_ID'],$category_tbl, $path);

    }
    return $path;
}

Bu kırıntıları oluşturmak gerekir tekrarlanan bir fonksiyon. Ben düzgün, sadece son BAŞLIK döndürür işe alınamıyor.

the sql table is something like ID, TITLE, PARENT_ID a PARENT_ID = 0 means the category has no parent, for any other PARENT_ID, go to that ID, get it's title and add it to the $path variable

Ben bu işi yapmak için yardıma ihtiyacım var. Alternatifler de bekliyoruz.

2 Cevap

Böyle bir şey deneyin:

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) {
        return $row['TITLE'];
    } else {
        return createPath($row['PARENT_ID'],$category_tbl).'-'.$row['TITLE'];
    }
}

Ya CreatePath tarafından döndürülen değeri kullanın veya başvuru tarafından geçirilen $ yolu olması gerekir, & $ yol gibi görünüyor. Bir ya da her bir diğer, ama parça.