smarty实现多级分类的方法
重构后的文章如下:
Smarty实现多级分类的奥秘
在Web开发中,多级分类是一种常见的结构,用于展示和组织内容。本文将向你展示如何使用Smarty模板引擎实现多级分类。我们将深入循环读取的技巧,使你能够轻松应对复杂的分类结构。
我们需要从数据库中获取分类信息。这里是一个简单的PHP代码示例,展示如何查询并处理分类数据:
```php
// 连接数据库并查询分类信息
$result = mysql_query("SELECT id, description, parent_id, name, sort_order FROM article_category WHERE parent_id=0 ORDER BY id");
while ($row = mysql_fetch_array($result)) {
// 将分类信息存入数组
$class[] = $row;
// 查询子分类信息
$result_sub = mysql_query("SELECT id, description, parent_id, name, sort_order FROM article_category WHERE parent_id='" . $row['id'] . "' ORDER BY id");
while ($row_sub = mysql_fetch_array($result_sub)) {
// 将子分类信息存入数组
$subclass[] = $row_sub;
}
}
// 将分类和子分类信息赋值给Smarty模板
$smarty->assign("class", $class);
$smarty->assign("subclass", $subclass);
$smarty->display('articles.html');
?>
```
接下来,在Smarty模板中,我们可以使用循环来展示这些分类信息。下面是一个HTML结合Smarty标签的示例:
```html
- {$cat.name}[{$cat.id}]
- {$subcat.name}[{$subcat.parent_id}]
{foreach name=cat item=cat from=$class}
{foreach name=subcat item=subcat from=$subclass}
{if $subcat.parent_id == $cat.id}
{/if}
{/foreach}
{/foreach}
```