【PHP】 【PHP100改进系列】无限分类的设计、实施与美化
时间:2010-11-06 来源:王小白
代码
//无限分类:首次初始
function classViewFirst ($table) {
$imgUp="<img src='../admin/images/1.png' height='15' width='15' />";
$imgCenter="<img src='../admin/images/2.png' height='15' width='15' />";
$imgSkin="<img src='../admin/images/3.png' height='15' width='15' />";
$imgFile="<img src='../admin/images/file.png' height='15' width='15' />";
$query=$this->query("select * from $table where f_id=0 ");
$num=mysql_num_rows($query);
$count=0;
while ($row2=mysql_fetch_array($query))
{
$count+=1;
if($count== $num)
{
echo $imgUp. $imgFile ."<span id=$row3[id]>".$row2[name]."</span><br>";
}else
{
echo $imgCenter. $imgFile ."<span id=$row3[id]>".$row2[name]."</span><br>";
}
$this->classView($row2[id], $imgSkin." ");
}
}
//递归无限
function classView ($fid,$strClass) {
$imgUp="<img src='../admin/images/1.png' height='15' width='15' />";
$imgCenter="<img src='../admin/images/2.png' height='15' width='15' />";
$imgSkin="<img src='../admin/images/3.png' height='15' width='15' />";
$imgFile="<img src='../admin/images/file.png' height='15' width='15' />";
//$strClass.=$imgSkin." ";
$query2=$this->query("select * from p_newsclass where f_id=$fid ");
$num=mysql_num_rows($query2);
$count=0;
while ($row3=mysql_fetch_array($query2))
{
$count+=1;
if($count== $num)
{
echo $strClass.$imgUp. $imgFile ."<span id=$row3[id]>".$row3[name]."</span><br>";
$this->classView($row3[id],$strClass." ");
}else
{
echo $strClass.$imgCenter. $imgFile ."<span id=$row3[id]>".$row3[name]."</span><br>";
$this->classView($row3[id],$strClass.$imgSkin." ");
}
}
}
//完成
刚开始是这样的:
后来通过不同情况下生成占位字符串的处理,终于把那个竖线干掉了。
虽然不是特别好(左右查询的处理方法可以提高效率),但介于学习PHP而不是数据库算法的需求,勉强勉强啦,比ASP的执行效率要高。
相关阅读 更多 +