PHP简单实现无限级分类的方法

这篇文章主要介绍了PHP简单实现无限级分类的方法,涉及sql语句及递归调用的相关技巧,需要的朋友可以参考下,本文实例讲述了PHP简单实现无限级分类的方法,分享给大家供大家参考,具体如下:

数据库结构:

  1. CREATE TABLE IF NOT EXISTS `city` (
  2. `id` int(11) NOT NULL auto_increment,
  3. `name` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL default '0',
  4. `parentId` int(11) NOT NULL default '0'
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

php文件:

  1. $db=new DB($Config['host'],$Config['user'],$Config['password'],$Config['port'],$Config['db'],$Config['charset']);
  2. function findCity($table,$id=0,$level=1){
  3. global $db;
  4. $findSql="select id,name,parentId from $table where parent;
  5. $findResult=$db->getArray($findSql);
  6. $num=$db->numRows;
  7. $logoStr="|";
  8. for($i=0;$i<$level;$i++){
  9. $logoStr.="--";
  10. }
  11. if($num!=0){
  12. for($j=0;$j<$num;$j++){
  13. echo "<option value={$findResult[$j]['id']}>{$logoStr}{$findResult[$j][name]}</option>";
  14. findCity($table,$findResult[$j]['id'],$level+1);
  15. }
  16. }
  17. }
  18. findCity(city);