Рекурсивная функция для генерации хлебных крошек - PullRequest
2 голосов
/ 14 февраля 2010
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;
}

Это рекурсивная функция, которая должна генерировать хлебные крошки.Я не могу заставить его работать должным образом, он только возвращает последний TITLE.

таблица sql похожа на ID, TITLE, PARENT_ID, PARENT_ID = 0 означает, что у категории нет родителя, для любого другого PARENT_ID перейдите кэтот идентификатор, получите его название и добавьте его в $path переменную

Мне нужна помощь, чтобы эта работа сработала.Альтернативы также приветствуются.

Ответы [ 2 ]

5 голосов
/ 14 февраля 2010

Попробуйте что-то вроде этого:

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'];
    }
}
0 голосов
/ 14 февраля 2010

Похоже, вам нужно либо использовать значение, возвращаемое createPath, либо передать $ path по ссылке, & $ path.Один или другой, но не часть каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...