0

親カテゴリとその下のサブカテゴリを含む、apple.com/sitemap のような HTML サイトマップを作成する必要があります。このように 2 つのテーブルを作成しました: プライマリ カテゴリ:

ID | タイトル | URL

サブカテゴリ:

ID|Parent_Category_ID|TITLE|URL ...

次のように表示されるように取得するにはどうすればよいですか。

親カテゴリ

  • Sub_Cat
  • Sub_Cat

編集:いくつかのオンラインの提案に従ったため、現在は1つの表があります:

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 を適切に配置する準備はできていますが、表示できません。

助けてください!!

4

1 に答える 1

0

これは、配列を適切な形式で取得するために使用した関数です..

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;
}

詳細については、この投稿を参照してください:リンク

于 2012-07-11T09:47:37.137 に答える