Как создать иерархические ссылки для 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;
}
Для получения дополнительной информации обратитесь к этому сообщению: Ссылка