国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php+mysql無限級分類程序代碼

2024-05-04 21:58:13
字體:
來源:轉載
供稿:網友

無限級分類主要就是數據庫中表的存儲,一個是父ID,一個是子ID通過他們來查詢父級關系,然后出來我們想要的.

表結構:id字段為分類標識,name字段為分類名,father_id字段為所屬父分類的id,path字段為分類路徑(儲存該分類祖先的集合),isdir判斷是否是目錄(1為是,0為否).

例1,代碼如下:

  1. //$count為分類等級  
  2. sort_list($str,$fatherid,$count)  
  3. {  
  4. $rs = $this->sql->re_datas("select * from sort where father_id = fatherid");  
  5. $num = $this->sql->sql_numrows();  
  6. $i=0;  
  7. $n = 1;  
  8. while(isset($rs[$i]))  
  9. {  
  10. $name = "";  
  11. for($n = 1 ; $n < $count ; $n++)  
  12. {  
  13. $name.="│ ";  
  14. }  
  15. if($i+1==$num)  
  16. {  
  17. $name.="└─".$rs[$i][name];  
  18. }  
  19. else  
  20. {  
  21. $name.="├─".$rs[$i][name];  
  22. }  
  23. if($rs[$i][isdir])  
  24. {  
  25. $str.="<span style='color:#CCCCCC'>".$name."</span>";  
  26. }  
  27. else  
  28. {  
  29. $str.=$name";  
  30. }  
  31. $temp = $count+1;  
  32. $str = $this->sort_list($str,$rs[$i][id],$temp);  
  33. $i++;  
  34. }  
  35. return $str;  

其中$this->sql對象為sql操作類對象,re_datas()函數返回查到的數組,sql_numrows()函數返回查詢到的數目.

調用方法:$sort_list = sort_list($sort_list,0,1);

實例上2,方法如下:

  1. id 編號 
  2. fid 父分類編號 
  3. class_name 分類名 
  4. path 分類路徑,以 id 為節點,組成類似 ,1,2,3,4, 這樣的字符串 
  5. ———————————————————————————- 
  6. 可以假設有如下的數據 
  7. id fid class_name path 
  8. —————————————————- 
  9. 1  0       分類1 ,       1, 
  10. 2  0       分類2 ,       2, 
  11. 3  1       分類1-1 ,    1,3, 
  12. 4  1       分類1-2 ,    1,4, 
  13. 5  2       分類2-1 ,    2,5, 
  14. 6  4       分類1-2-1 , 1,4,6, 
  15. —————————————————- 

代碼如下:

  1. <?php      
  2. $sql=”SELECT * FROM tree order by path”;    
  3. $result=$nbs->Query($sql);    
  4. while($rows=$nbs->fetch_array($result)){    
  5.     if(substr_count($rows['path'],’,')>2){    
  6.         for($i=0;$i<(substr_count($rows['path'],’,')-2);$i++)    
  7.             echo ‘ ‘;    
  8.     }    
  9.     echo $rows['class_name'].’<br>’;    
  10. }    
  11. ?>     
  12. //代碼如下 
  13. $conn = mysql_connect ( 'localhost''root''root' ); 
  14. mysql_select_db ( 'wanggou123'$conn ); 
  15. mysql_query ( 'set names UTF8' ); 
  16. $sql = "select id,concat(catpath,'-',id) as abspath,name from category order by abspath"
  17.  
  18. $query = mysql_query ( $sql ); 
  19. while ( $row=mysql_fetch_array($query)) { 
  20.  
  21. /** 
  22.    * 第一種展示方法 
  23. */ 
  24. /*$space = str_repeat ( '&nbsp;&nbsp;&nbsp;&nbsp;', count ( explode ( '-', $row ['abspath'] ) ) - 1 ); 
  25. echo $space . $row ['name'] . ' 
  26. ';*/ 
  27. /** 
  28.  第二種展示方法 
  29. */ 
  30. $space = str_repeat ( '——'count ( explode ( '-'$row ['abspath'] ) ) - 1 ); 
  31. $option .= '' . $space . $row ['name'] . '<Br>'
  32. echo $option
  33. exit(); 
  34. echo '<select name="opt">' . $option . '</select>'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开原市| 石门县| 顺义区| 涪陵区| 奈曼旗| 上杭县| 穆棱市| 滦平县| 隆安县| 舞钢市| 正镶白旗| 诸暨市| 根河市| 南安市| 额济纳旗| 涞源县| 新乡市| 息烽县| 凌海市| 雅安市| 合水县| 赤峰市| 饶河县| 普兰店市| 新巴尔虎左旗| 合肥市| 交城县| 安多县| 阿拉善盟| 镇江市| 萨嘎县| 秦皇岛市| 双桥区| 彭州市| 兰西县| 文成县| 开江县| 桐柏县| 武邑县| 扎兰屯市| 咸丰县|