Описание


Благодаря помощи профессионалов на stackoverflow я (почти сам) наконец-то написал функцию, которая выводит структуру категорий из базы данных лестничкой. Когда-то давно пытался сделать, но так и не смог. И вот наконец-то добился результата.
 
Есть много вариантов решения в интернете, но у одних больше одного запроса в базу, у других слишком сложный процесс выборки.
Моя же функция требует всего лишь один запрос в базу.
 
function ReintCategory($categories, $parent_id){
    $parent_isset = false;
    $result = '<ul class="sub_cat_menu">';
    foreach ($categories as $row) {
        // если id родительской категории = parent_id и у неё parent_id не 0
        if(($parent_id == $row["parent"]) && ($row["parent"] > 0)){
            $parent_isset = true;
            $result .= '<li>'.$row["id"].' '.$row["title"];
            $result .= ReintCategory($categories, $row["id"]);
            $result .= '</li>';
        }
    }
    $result .= '</ul>';
    if($parent_isset == true) {
        return $result;
    }
    return '';
}
echo '<ul class="editor_menu">';
foreach ($categories as $row) {
    if($row["parent"] == 0) {
        echo '<li>'.$row["id"].' '.$row["title"];
        echo ReintCategory($categories, $row["id"]);
        echo '</li>';
    }
}
echo "</ul>";
 
В $categories попадает ассоциативный массив из базы данных.
Жалоба

Комментарии 0

Добавить комментарий

    • Смайлы и люди
      Животные и природа
      Еда и напитки
      Активность
      Путешествия и места
      Предметы
      Символы
      Флаги
Кликните на изображение чтобы обновить код, если он неразборчив

Похожие товары