关于PHP的无限极分类,高手帮帮我。 我是个PHP新手刚学会smarty现在想自己动手做个分类信息站,可是我不太明白无限分类,看别人的代码看不太明白,谁能帮帮我指点一下我,无限分类是什么原理,或者给我一个能用的无限分类程序,我还听别人说分类信息用不到无限分类,那用什么原理分类呢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 id parent_node name1 表结构简单如上,parent_node为父节点,如果为0表示为顶级节点.2 由此就可以无限延伸,构成数型结构,所以可以说是无限分类. <?php require_once("../inc/inc.php"); if ($_GET["parent_id"] == "") { $parent_id = -1; } else { $parent_id = (integer)$_GET["parent_id"]; } if (!$_GET["category_level"]) { $category_level = 0; } else { $category_level = (integer)$_GET["category_level"]; } if (!$_GET["pageno"]) { $pageno = 1; } else { $pageno = (integer)$_GET["pageno"]; } $array_level[0] = "一"; $array_level[1] = "二"; $array_level[2] = "三"; $array_level[3] = "四"; $array_level[4] = "五"; $array_level[5] = "六"; $array_level[6] = "七"; $array_level[7] = "八"; $array_level[8] = "九"; $array_level[9] = "十"; $pagesize = $pagesize_config;if(!$pagesize){$pagesize = 30;} $category = $categorysql->select_category_by_category_id($parent_id); if (!trim($_GET["wd"])){ $commons = $categorysql->select_category_by_parent_id($parent_id); } else{ $commons = $categorysql->select_category_by_parent_id_and_word($parent_id,trim($_GET["wd"])); } if($commons){ $rscount = $commons->recordcount(); } $pagestart = $pagesize * ($pageno - 1); $pageend = $pagestart + $pagesize; if (!$rscount%$pagesize) { $totalpage = $rscount / $pagesize; } else { $totalpage = ($rscount - $rscount%$pagesize) / $pagesize + 1; }?><html lang="zh"><meta http-equiv="Content-Type" content="text/html;charset=GB2312"><head><title>分类列表</title><link rel=stylesheet type="text/css" href="../css.css"><script language="javascript" src="../js/window.js"></script></head><body style="margin:10 10 10 10" onload=document.search.wd.focus()><table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center"> <tr><td class="alt1" width="100%"> <a title="无框架模式" href="../main.php?cols=0&file=<?php echo $PHP_SELF;?>" target="_top"><img src="../images/navbits_start.gif" border="0"></a><a title="框架模式" href="../main.php?cols=15&file=<?php echo $PHP_SELF;?>" target="_top"><img src="../images/xlink.gif" border="0"></a> <span class="navbar"> <a href="../category">分类管理</a> -> <?php if(!$category->EOF && $category){echo $category->name;}?> </span> </td></tr></table> <form name="search" action="<?php echo $PHP_SELF;?>" method="get"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr valign="middle" height="40"> <td width="190" nowrap> <a href="addcategory.php?parent_id=<?php echo $parent_id;?>" target="_blank"><font color=#CC0000>添加<?php echo $array_level[$category_level];?>级分类</font></a> </td> <td nowrap> 搜索关键字: <input type="text" name="wd" value="<?php echo trim($_GET["wd"]);?>""> <input type="hidden" name="category_level" value="<?php echo $category_level;?>"> <input type="hidden" name="parent_id" value="<?php echo $parent_id;?>"> <input type="hidden" name="rscount" value="<?php echo $rscount;?>"> <input type="submit" name="submit" value="搜索"> </td> <td align="right" nowrap> 共有<font color=#CC0000><?php echo $rscount;?></font>个<font color=#CC0000><?php echo $array_level[$category_level];?></font>级分类 每页<font color=#CC0000><?php echo $pagesize;?></font>个 本页<font color=#CC0000><?php if($totalpage>$pageno){echo $pagesize;}else{echo ($rscount-($pageno-1)*$pagesize);}?></font>个 </td> </tr></table></form><form name="frm" action="mdo.php" method="POST"><table width=90% align=center cellSpacing=1 cellPadding=3 class="tborder"> <tr valign="middle" class="T1" style="color:#FFFFFF; font-weight: bold"> <td align="center"><div align="center">分类编号</div></td> <td align="center"><div align="center">分类名称</div></td> <td align="center"><div align="center">顺序</div></td> <td align="center"><div align="center">是否置顶</div></td> <td align="center"><div align="center">是否热门</div></td> <td align="center"><div align="center">最后更新时间</div></td> <td align="center"><div align="center">编辑选项</div></td> </tr><?php while(!$commons->EOF){ if($i>=$pagestart && $i<$pageend){ if(!$j){ $j=$pagestart; }?> <tr valign="middle" class="T<?php echo $i%2+2;?>"> <td align="center"><div align="center"> <?php echo $commons->Fields("CATEGORY_ID");?> </div></td> <td align="center"><div align="center"> <?php $categorys = $categorysql->select_category_by_parent_id($commons->Fields("CATEGORY_ID")); if (!$categorys->EOF) { ?> <a href="<?php echo $PHP_SELF;?>?parent_id=<?php echo $commons->Fields("CATEGORY_ID");?>&category_level=<?php echo ($category_level+1);?>" title="<?php while(!$categorys->EOF){echo $categorys->Fields("NAME")."\n"; $categorys->movenext();}?>"><?php }?><font color="#003300"><b><?php echo $commons->Fields("NAME");?></b></font><?php if (!$categorys->EOF) {?></a><?php }?> </div></td> <td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("SORT_ORDER");?></font></div></td> <td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("IS_TOP");?></font></div></td> <td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("IS_HOT");?></font></div></td> <td align="center"><div align="center"> <font color="#999999"><?php $time_last=split(" ",$commons->Fields("LAST_MODIFIED"),2);echo $time_last[0];?></font> </div></td> <td align="center"><div align="center"> <?php if ($categorys->EOF) {?><a href="../brand/index.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>"><font color="#6699FF">品牌</font></a><?php }?> <?php if ($categorys->EOF) {?><a href="../attribute/index.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>"><font color="#FF0000">属性</font></a><?php }?> <a href="#" onclick="<?php if ($categorys->EOF){echo "if(tishiadd()){";}?>new_window('addcategory.php?parent_id=<?php echo $commons->Fields("CATEGORY_ID");?>');<?php if ($categorys->EOF){echo "}";}?>"><font color="#FF9933">添加子分类</font></a> <a href="editcategory.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>" target="_blank"><font color=green>编辑</font></a> <input name="checkbox<?php echo (integer)$i?>" type="checkbox" value="<?php echo $commons->Fields("CATEGORY_ID");?>"> </div></td> </tr><?php $j++; } $i++; $commons->movenext(); }?> <tr><td align="right" colspan="6"> <input type="hidden" name="category_level" value="<?php echo $category_level;?>"> <input type="hidden" name="parent_id" value="<?php echo $parent_id;?>"> <input type="hidden" name="pageno" value="<?php echo $pageno;?>"> <input type="hidden" name="rscount" value="<?php echo $rscount;?>"> <input type="button" name ="true" value="全选" onclick="javascript: <?php for($i=$pagestart;$i<$j;$i++){echo "document.frm.checkbox".$i.".checked=true;";}?>"> <input type="button" name ="false" value="全否" onclick="javascript: <?php for($i=$pagestart;$i<$j;$i++){echo "document.frm.checkbox".$i.".checked=false;";}?>"> <input type="button" name ="false" value="反选" onclick="javascript: <?php for($i=$pagestart;$i<$j;$i++){echo "if(document.frm.checkbox".$i.".checked==false){document.frm.checkbox".$i.".checked=true;}else{document.frm.checkbox".$i.".checked=false;}";}?>"> <input type="submit" name ="submit" value="删除所选" onclick="javascript:return tishi();"> <?php if($category_level!=0){?> <input type="submit" name ="submit" value="更改父分类"> <?php }?></form> </td><td align="right" colspan="2"><form name="page" method="GET" action="<?php echo $PHP_SELF;?>"> <select name="pageno" onchange="javascript:window.location=('<?php echo $PHP_SELF;?>?parent_id=<?php echo $parent_id;?>&category_level=<?php echo $category_level;?>&pageno='+this.options[this.selectedIndex].value)"><?php for($i=1;$i<=$totalpage;$i++){ echo "\t\t\t<option value=".$i; if($pageno==$i){echo " selected";} echo ">第".$i."页</option>\n"; }?> </select> <input type="hidden" name="category_level" value="<?php echo $category_level;?>"> <input type="hidden" name="parent_id" value="<?php echo $parent_id;?>"></form> </td></tr></table></body></html> http://download.csdn.net/source/1525095 这是我发的一个无限分类的资源,你中以去下了看看。 2楼好长的代码不过LZ好像要用smarty哦? http://download.csdn.net/source/1525095网址不错,去看看 http://blog.csdn.net/kao331431214/archive/2010/03/29/5425698.aspx这个非常好 如何在ecshop中的.dwt文件中调用方法,那段代码是什么? 如何实现插入时自动替换? 关于php的一个正则表达式的问题 php模糊字符串替换问题。。。。。。。。 这是怎么回事? 最近用php写了一个从mysql数据库随机读取n条记录 MySQL的一个基础问题:为什么不能用? 在同一文件中怎么实现提交多次?在线等。。 PHP中的“命令按钮”....? 需要对一 text 输入框 进行ip地址检验 生成XML内容,如何正确显示<>符号 如何逐一获取字符串中的单个字符?
1 表结构简单如上,parent_node为父节点,如果为0表示为顶级节点.
2 由此就可以无限延伸,构成数型结构,所以可以说是无限分类.
require_once("../inc/inc.php");
if ($_GET["parent_id"] == "") {
$parent_id = -1;
} else {
$parent_id = (integer)$_GET["parent_id"];
}
if (!$_GET["category_level"]) {
$category_level = 0;
} else {
$category_level = (integer)$_GET["category_level"];
}
if (!$_GET["pageno"]) {
$pageno = 1;
} else {
$pageno = (integer)$_GET["pageno"];
}
$array_level[0] = "一";
$array_level[1] = "二";
$array_level[2] = "三";
$array_level[3] = "四";
$array_level[4] = "五";
$array_level[5] = "六";
$array_level[6] = "七";
$array_level[7] = "八";
$array_level[8] = "九";
$array_level[9] = "十";
$pagesize = $pagesize_config;if(!$pagesize){$pagesize = 30;}
$category = $categorysql->select_category_by_category_id($parent_id);
if (!trim($_GET["wd"])){
$commons = $categorysql->select_category_by_parent_id($parent_id);
}
else{
$commons = $categorysql->select_category_by_parent_id_and_word($parent_id,trim($_GET["wd"]));
}
if($commons){
$rscount = $commons->recordcount();
}
$pagestart = $pagesize * ($pageno - 1);
$pageend = $pagestart + $pagesize;
if (!$rscount%$pagesize) {
$totalpage = $rscount / $pagesize;
} else {
$totalpage = ($rscount - $rscount%$pagesize) / $pagesize + 1;
}
?>
<html lang="zh">
<meta http-equiv="Content-Type" content="text/html;charset=GB2312">
<head>
<title>分类列表</title>
<link rel=stylesheet type="text/css" href="../css.css">
<script language="javascript" src="../js/window.js"></script>
</head><body style="margin:10 10 10 10" onload=document.search.wd.focus()><table class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
<tr><td class="alt1" width="100%">
<a title="无框架模式" href="../main.php?cols=0&file=<?php echo $PHP_SELF;?>" target="_top"><img src="../images/navbits_start.gif" border="0"></a><a title="框架模式" href="../main.php?cols=15&file=<?php echo $PHP_SELF;?>" target="_top"><img src="../images/xlink.gif" border="0"></a>
<span class="navbar">
<a href="../category">分类管理</a> -> <?php if(!$category->EOF && $category){echo $category->name;}?>
</span>
</td></tr>
</table>
<form name="search" action="<?php echo $PHP_SELF;?>" method="get">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr valign="middle" height="40">
<td width="190" nowrap>
<a href="addcategory.php?parent_id=<?php echo $parent_id;?>" target="_blank"><font color=#CC0000>添加<?php echo $array_level[$category_level];?>级分类</font></a>
</td>
<td nowrap>
搜索关键字: <input type="text" name="wd" value="<?php echo trim($_GET["wd"]);?>"">
<input type="hidden" name="category_level" value="<?php echo $category_level;?>">
<input type="hidden" name="parent_id" value="<?php echo $parent_id;?>">
<input type="hidden" name="rscount" value="<?php echo $rscount;?>">
<input type="submit" name="submit" value="搜索">
</td>
<td align="right" nowrap>
共有<font color=#CC0000><?php echo $rscount;?></font>个<font color=#CC0000><?php echo $array_level[$category_level];?></font>级分类
每页<font color=#CC0000><?php echo $pagesize;?></font>个
本页<font color=#CC0000><?php if($totalpage>$pageno){echo $pagesize;}else{echo ($rscount-($pageno-1)*$pagesize);}?></font>个
</td>
</tr>
</table>
</form><form name="frm" action="mdo.php" method="POST">
<table width=90% align=center cellSpacing=1 cellPadding=3 class="tborder">
<tr valign="middle" class="T1" style="color:#FFFFFF; font-weight: bold">
<td align="center"><div align="center">分类编号</div></td>
<td align="center"><div align="center">分类名称</div></td>
<td align="center"><div align="center">顺序</div></td>
<td align="center"><div align="center">是否置顶</div></td>
<td align="center"><div align="center">是否热门</div></td>
<td align="center"><div align="center">最后更新时间</div></td>
<td align="center"><div align="center">编辑选项</div></td>
</tr>
<?php
while(!$commons->EOF){
if($i>=$pagestart && $i<$pageend){
if(!$j){
$j=$pagestart;
}
?>
<tr valign="middle" class="T<?php echo $i%2+2;?>">
<td align="center"><div align="center">
<?php echo $commons->Fields("CATEGORY_ID");?>
</div></td>
<td align="center"><div align="center">
<?php
$categorys = $categorysql->select_category_by_parent_id($commons->Fields("CATEGORY_ID"));
if (!$categorys->EOF) {
?>
<a href="<?php echo $PHP_SELF;?>?parent_id=<?php echo $commons->Fields("CATEGORY_ID");?>&category_level=<?php echo ($category_level+1);?>" title="<?php while(!$categorys->EOF){echo $categorys->Fields("NAME")."\n"; $categorys->movenext();}?>"><?php }?><font color="#003300"><b><?php echo $commons->Fields("NAME");?></b></font><?php if (!$categorys->EOF) {?></a><?php }?>
</div></td>
<td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("SORT_ORDER");?></font></div></td>
<td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("IS_TOP");?></font></div></td>
<td align="center"><div align="center"><font color="#999999"><?php echo $commons->Fields("IS_HOT");?></font></div></td>
<td align="center"><div align="center">
<font color="#999999"><?php $time_last=split(" ",$commons->Fields("LAST_MODIFIED"),2);echo $time_last[0];?></font>
</div></td>
<td align="center"><div align="center">
<?php if ($categorys->EOF) {?><a href="../brand/index.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>"><font color="#6699FF">品牌</font></a><?php }?>
<?php if ($categorys->EOF) {?><a href="../attribute/index.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>"><font color="#FF0000">属性</font></a><?php }?>
<a href="#" onclick="<?php if ($categorys->EOF){echo "if(tishiadd()){";}?>new_window('addcategory.php?parent_id=<?php echo $commons->Fields("CATEGORY_ID");?>');<?php if ($categorys->EOF){echo "}";}?>"><font color="#FF9933">添加子分类</font></a>
<a href="editcategory.php?category_id=<?php echo $commons->Fields("CATEGORY_ID");?>" target="_blank"><font color=green>编辑</font></a>
<input name="checkbox<?php echo (integer)$i?>" type="checkbox" value="<?php echo $commons->Fields("CATEGORY_ID");?>">
</div></td>
</tr>
<?php
$j++;
}
$i++;
$commons->movenext();
}
?>
<tr><td align="right" colspan="6">
<input type="hidden" name="category_level" value="<?php echo $category_level;?>">
<input type="hidden" name="parent_id" value="<?php echo $parent_id;?>">
<input type="hidden" name="pageno" value="<?php echo $pageno;?>">
<input type="hidden" name="rscount" value="<?php echo $rscount;?>">
<input type="button" name ="true" value="全选" onclick="javascript:
<?php for($i=$pagestart;$i<$j;$i++){echo "document.frm.checkbox".$i.".checked=true;";}?>">
<input type="button" name ="false" value="全否" onclick="javascript:
<?php for($i=$pagestart;$i<$j;$i++){echo "document.frm.checkbox".$i.".checked=false;";}?>">
<input type="button" name ="false" value="反选" onclick="javascript:
<?php for($i=$pagestart;$i<$j;$i++){echo "if(document.frm.checkbox".$i.".checked==false){document.frm.checkbox".$i.".checked=true;}else{document.frm.checkbox".$i.".checked=false;}";}?>">
<input type="submit" name ="submit" value="删除所选" onclick="javascript:return tishi();">
<?php if($category_level!=0){?>
<input type="submit" name ="submit" value="更改父分类">
<?php }?>
</form>
</td><td align="right" colspan="2">
<form name="page" method="GET" action="<?php echo $PHP_SELF;?>">
<select name="pageno" onchange="javascript:window.location=('<?php echo $PHP_SELF;?>?parent_id=<?php echo $parent_id;?>&category_level=<?php echo $category_level;?>&pageno='+this.options[this.selectedIndex].value)">
<?php
for($i=1;$i<=$totalpage;$i++){
echo "\t\t\t<option value=".$i;
if($pageno==$i){echo " selected";}
echo ">第".$i."页</option>\n";
}
?>
</select>
<input type="hidden" name="category_level" value="<?php echo $category_level;?>">
<input type="hidden" name="parent_id" value="<?php echo $parent_id;?>">
</form>
</td></tr>
</table>
</body>
</html>
这个非常好