无限分类树状列表

Posted on Posted in php
Tips: 本文创建于2014年5月2日,已超过 2 年,内容或图片可能已经失效!

功能代码

  1. <?php  
  2.   
  3. // insert into php26_category values  
  4. // (23, '手机配件', 50, 0),  
  5. // (45, '电池', 50, 23),  
  6. // (1, '耳机', 50, 23),  
  7. // (456, '锂电', 50, 45),  
  8. // (22, '碱性电池', 50, 45),  
  9. // (78, '耳麦', 50, 1),  
  10. // (33, '耳塞', 50, 1),  
  11. // (90, '蓝牙耳机', 50, 1),  
  12. // (66, '入耳式', 50, 33),  
  13. // (98, '头戴', 50, 33);  
  14.   
  15. // 得到一个分类集合!  
  16. mysql_connect ( 'localhost:3306', 'root', 'password' );  
  17. mysql_query ( 'set names utf8' );  
  18. mysql_query ( 'use test' );  
  19.   
  20. $sql = "select * from php26_category order by sort_order";  
  21.   
  22. $result = mysql_query ( $sql );  
  23. $list = array ();  
  24. while ( $row = mysql_fetch_assoc ( $result ) ) {  
  25. $list [] = $row;  
  26. }  
  27.   
  28. mysql_free_result ( $result );  
  29. mysql_close ();  
  30.   
  31. // $list 二维数组,分类集合  
  32.   
  33. /** 
  34. * 定义递归函数,完成安装父子关系排序分类 
  35. * 
  36. * @param 
  37. * &$list 
  38. * @param $p_id 当前查找ID 
  39. * 
  40. * @return array 按照分类关系排序好的分类集合数组 
  41. */  
  42. function tree(&$list$p_id = 0, $deep = 0) {  
  43. static $result = array (); // 保存按顺序查找到的分类  
  44. // 按照parent_id查  
  45. foreach ( $list as $row ) {  
  46. // 判断  
  47. if ($row ['parent_id'] == $p_id) {  
  48. // 就是当前分类的子分类  
  49. // 保存该分类  
  50. // echo $deep, '-', $row['cat_name'];  
  51. // echo '<br>';  
  52. $row ['deep'] = $deep;  
  53. $result [] = $row;  
  54. // 递归查找  
  55. tree ( $list$row ['cat_id'], $deep + 1 );  
  56. }  
  57. }  
  58. return $result;  
  59. }  
  60. $new_list = tree ( $list, 0 );  
  61. //echo '<hr>';  
  62. //var_dump($new_list);  
» 转载请注明来源:若我若鱼 » 无限分类树状列表

Leave a Reply

Your email address will not be published. Required fields are marked *

six + three =