无限分类php 递归函数

这款无限分类php递归函数是一款php 与sql查询递归的方法,很简单就是查询一次当前分类没有没子类,如果有的话就再调用函数本身来操作,如果己经没有子类了就可以返回了,代码如下:

  1. function createsortoptions ($selected=0,$parent_id=0,$n=-1)
  2. {
  3. global $db;
  4. $sql = "select * from `@__article_sort` where `parent_id` = '{$parent_id}'";
  5. $options = ";
  6. static $i = 0;
  7. if ($i == 0)
  8. {
  9. $options .= '<option value="0′ >请选择</option>';
  10. }
  11. $res = $db->query ($sql);
  12. if ($res)
  13. {
  14. $n++;
  15. while ($row = $db->fetch_assoc ($res))
  16. {
  17. $i++;
  18. $options .="<option value='{$row['sort_id']}'";
  19. if ($row['sort_id'] == $selected)
  20. {
  21. $options .=' selected ';
  22. }
  23. $options .=">".str_repeat(' ',$n*3).$row['sort_name']."</option> ";
  24. $options .=createsortoptions ($selected,$row['sort_id'],$n);
  25. } //开源代码phpfensi.com
  26. }
  27. return $options;
  28. }

如果是用smarty模板的朋友可以如下调用,代码如下:

//– $tpl->assign('sort_list',createsortoptions ());

//– $tpl->assign('sort_list',createsortoptions ($sort_id));