無限級分類,主要是通過儲存上級分類的id以及分類路徑來實現。
由于數據的結構簡單,所以要將分類的關系由樹狀顯示,我只能想到用遞歸的方式給于實現,下面是分類數據表結構和自己寫的一個樹狀顯示函數,有什么不妥的地方希望大家能指出。
表結構:id字段為分類標識,name字段為分類名,father_id字段為所屬父分類的id,path字段為分類路徑(儲存該分類祖先的集合),isdir判斷是否是目錄(1為是,0為否)。
顯示函數:
- //count為分類等級
- sort_list(str,fatherid,count)
- {
- rs = this->sql->re_datas("select * from sort where father_id = fatherid");
- num = this->sql->sql_numrows();
- i=0;
- n = 1;
- while(isset(rs[i]))
- {
- name = "";
- for(n = 1 ; n < count ; n++)
- {
- name.="│ ";
- }
- if(i+1==num)
- {
- name.="└─".rs[i][name];
- }
- else
- {
- name.="├─".rs[i][name];
- }
- if(rs[i][isdir])
- {
- str.="<span style='color:#CCCCCC'>".name."</span>";
- }
- else
- {
- str.=name";
- }
- temp = count+1;
- str = this->sort_list(str,rs[i][id],temp);
- i++;
- }
- return str;
- }
其中this->sql對象為sql操作類對象,re_datas()函數返回查到的數組,sql_numrows()函數返回查詢到的數目
調用方法:sort_list = sort_list(sort_list,0,1);
以上為個人思想,還望大家多多指點。by 5w臺燈
新聞熱點
疑難解答