Apple.com/sitemapのような形式で出力を整列させるために、適切な順序で出力を取得できません。私が直面している問題は、値を表示するときに使用されるタグであり、適切な場所に配置できません。
現在、出力は次のとおりです。
<ul class= "sitemap">
</ul></li><li><h2>Parent 1</h2><ul>
<li>Sub Cat 1</li>
<li>Sub Cat 2</li>
</ul></li><li><h2>Parent 2</h2><ul>
<li>Sub Cat3</li>
<li>Sub Cat 4</li>
</ul></li><li><h2>Parent 3</a></h2><ul>
CSS を実装できないために ul タグが適切に閉じられていない場合は..
次のようにテーブルを作成しました:
id | parent | name | url
1 | 0 | Parent1 | Link
2 | 1 | Sub Cat1| Link
3 | 2 | Sub Cat2| Link
4 | 0 | Parent2 | Link
値を取得するための MySQL クエリ:
$sql = 'SELECT parent,name, url FROM sitemap ORDER BY CASE WHEN parent =0 THEN id ELSE parent END , CASE WHEN parent =0 THEN 0 ELSE id END';
ページにデータを表示する行:
{foreach from=$sitemap item=c name=sitemap}
{ assign var="tmp" value= $c.parent }
{ if $tmp==0}
</ul></li><li><h2><a title="{$c.name}" href="{$c.url}">{$c.name}</a></h2><ul>
{else}
<li><a title="{$c.name}" href="{$c.url}">{$c.name}</a></li>
{/if}
{/foreach}