谁有YII无级分类代码 [ 新手入门 ]
谁有YII无级分类代码
能分享个吗,或者说说怎么实现也行啊
共 12 条回复
-
ShowTreeMenu($rs,$ID); //使用此方法就可以了
function ShowTreeMenu($rs,$layer){ $numrows=mysql_num_rows($rs); echo "<table cellpadding='0' cellspacing='0' border='0' width='100'>\n"; for($rows=0;$rows< $numrows;$rows++){ $menu=mysql_fetch_array($rs); $sql="select * from t_category where c_parent=$menu[c_id]"; $rs_sub=mysql_query($sql); echo " <tr>"; if(mysql_num_rows($rs_sub)>0){ echo " <td width='20' height='25'><img src='img/closed.gif' id='s_Menu".$GLOBALS["ID"]."' border='0' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].",s_Menu".$GLOBALS["ID"].");'> </td>\n"; echo " <td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].",s_Menu".$GLOBALS["ID"].");'>\n"; echo $menu['c_name']; }else{ echo " <td width='20' height='25'><img src='img/child.gif' border='0'></td>\n"; echo " <td class='Menu'>\n"; echo " <a href='".$menu['c_url']."' target='main'>".$menu['c_name']."</a>"; } echo " </td></tr>"; if(mysql_num_rows($rs_sub)>0) { echo "<tr id='Menu".$GLOBALS["ID"]++."' style='display:none'>\n"; echo "<td width='20'> </td>\n"; echo "<td>\n"; $layer++; ShowTreeMenu($rs_sub,$layer); echo "</td></tr>\n"; } $layer--; @mysql_free_result($rs_sub); } echo "</table>\n"; mysql_free_result($rs); }
-
yhl27ml@163.com 回复于 2011-05-28 17:19 举报
哥研究这个好多年了。。。
-
第一种是手动sql查询
父子无限分类的sql看这篇文章
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
配合yii的query caching
第二种是全部查询出来,每次从缓存载入解析出自己要的数据,仅在分类数据量不大的时候可行. -
楼上说的这种访问是很不错的,
补充一个中文版的说明:
http://tech.ddvip.com/2009-03/1237534469111885.html -
hewenxiang 回复于 2011-05-31 14:40 举报
不建议用递归,对数据库太查询操作过多,建议单独用一个path字段存储路径结构 parentid - parentid - id
北京过客 山东
注册时间:2011-03-14
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝3
- 金钱910
- 威望0
- 积分910