Как создать иерархические ссылки для Sitemap.html

Мне нужно создать HTML-карту сайта, аналогичную apple.com/sitemap, с родительской категорией и подкатегорией. Я создал две таблицы как таковые: Основная категория:

ID | НАЗВАНИЕ | URL

Подкатегория как:

ID | Parent_Category_ID | TITLE | URL...

Как я могу получить его, чтобы он показал что-то вроде:

Родительская категория

  • Sub_Cat
  • Sub_Cat

Изменить: следовал некоторым онлайн предложениям, так что теперь есть одна таблица:

ID      Parent       Name        URL
1          0         Parent1     URL1
2          0         Parent2     URL2  
3          1         Sub1        URL3
4          0         Parent3     URL4
5          2         Sub2        URL5

Вот код, с помощью которого я могу создать массив категорий с подкатегориями

<?php

   include('config.php');   



echo '<pre>';

$categories = Sitemap::getTopCategories();
print_r($categories);

echo '</pre>';

class Sitemap
{ 


public static function getTopCategories()
{
    return self::getCategories('parent = 0');
}

public static function getCategories($where = '')
{
    if ($where) $where = " WHERE $where";
    $result = mysql_query("SELECT * FROM testing $where");

    $categories = array();

    while ($category = mysql_fetch_array($result)){
    $my_id = $category['id'];
    $category['children'] = Sitemap::getCategories("parent = $my_id");
            $categories[] = $category;
        }

    mysql_free_result($result);
    return $categories;
  }
 }
 ?>

Теперь, что я должен следовать, чтобы он отображался надлежащим образом с apple.com/sitemap. Я готов с CSS для правильного размещения, но не могу его отобразить.

Пожалуйста помоги!!

1 ответ

Вот функция, которую я использовал, чтобы получить массив в правильном формате.

function outputCategories($categories, $startingLevel = 0)  
{

    foreach ($categories as $key => $category)
    {
        if (count($category['children']) > 0)
        {
            echo '<li><a title="'.$category['name'].'" href="'.$category['url'].'">'.$category['name'].'</a><ul>';
            outputCategories($category['children'], $startingLevel+1);
            echo "</li>";
        }
        else
        {
            echo '<li><a title="'.$category['name'].'" href="'.$category['url'].'">'.$category['name'].'</a></li>';
        }
    }
    echo "</ul>";
    return self;
}

Для получения дополнительной информации обратитесь к этому сообщению: Ссылка

Другие вопросы по тегам