<?php
session_start();
define ('P_S', PATH_SEPARATOR);
define ('ROOT', "./");
set_include_path(ROOT .P_S .'Zend' .P_S .ROOT.get_include_path());
//加载ZEND 框架
require_once ROOT.'Zend/Loader.php';
require_once 'usercheck.php';//加载访问权限
Zend_Loader::loadFile('function.class.php', $dirs='class/', $once=false);//加载函数
Zend_Loader::loadClass('Zend_Db');//加载数据库类
Zend_Loader::loadClass('Zend_Config_Ini');//加载配置类
$config = new Zend_Config_Ini('config.php', 'general');//创建配置对象
$db = Zend_Db::factory($config->db->adapter,$config->db->config->toArray());//创建数据库对象
$select=$db->select();
$select->from('ResClass',array('lsh','name'));
$select->where('steps = 1');
$rs=$db->fetchAll($select);
foreach ($rs as $res){
echo ' '.$res['lsh'].$res['name']."<br>";
Visit($res['lsh'],1);
}
function Visit($nodeid,$stept){
global $db;
$recordset = "SELECT lsh,name FROM ResClass WHERE parent=".$nodeid; //搜索nodeid的所有下层节点
$rs=$db->fetchAll($recordset);
foreach($rs as $rss){
if(!$rss)
return; //已经是叶子节点,直接返回
else{
for ($i=0;$i<4*$stept;$i++){
echo " ";
}
echo ' '.$rss['lsh'].$rss['name']."<br>";
Visit($rss['lsh'],$stept+1);
}
}
}
?>
1、一周学会 PHP
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0816_0820_PHP/videos/040816_PHP_1.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0816_0820_PHP/videos/040817_PHP_2.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0816_0820_PHP/videos/040816_PHP_3.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0816_0820_PHP/videos/040816_PHP_4.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0816_0820_PHP/videos/040816_PHP_5.wmv
2、PHP 专案实战讲座
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0906_0910_PHP2/videos/040906_PHP2_1.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0906_0910_PHP2/videos/040907_PHP2_2.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0906_0910_PHP2/videos/040907_PHP2_3.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0906_0910_PHP2/videos/040907_PHP2_4.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2004/0906_0910_PHP2/videos/040907_PHP2_5.wmv
3、一周学会PHP 接案2
ftp://ftp.cycu.edu.tw/CNA/Course/2005/0124_0128_PHP/videos/050124_PHP_1.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2005/0124_0128_PHP/videos/050125_PHP_2.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2005/0124_0128_PHP/videos/050125_PHP_3.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2005/0124_0128_PHP/videos/050125_PHP_4.wmv
ftp://ftp.cycu.edu.tw/CNA/Course/2005/0124_0128_PHP/videos/050125_PHP_5.wmv
4、PHP网页制作入门
http://cna.cycu.edu.tw/cna_course/download.php?year=2006&subject=0307_php.wmv
5、PHP与MYSQL初体验
http://cna.cycu.edu.tw/cna_course/download.php?year=2006&subject=0321_PHP_2.wmv
6、PHP通讯录制作
http://cna.cycu.edu.tw/cna_course/download.php?year=2006&subject=03218_PHP_3.wmv
7、PHP+MYSQL選寫網站計數器+線上人數統計
http://cna.cycu.edu.tw/cna_course/download.php?year=2005&subject=1221_php_net.wmv
8、PHP+MYSQL選寫網站計數器+線上人數統計
http://cna.cycu.edu.tw/cna_course/download.php?year=2005&subject=1207_php_counter.wmv
例如:
---共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-----
初遇到这个问题的道友,在考虑解决这个问题的时候好像都是在打php的主意,考虑怎么用php来实现,但是不管你是怎么设计都后设计成两种方案
1、用嵌套循环来实现
2、用n多个判断来搞
但是最终还是比较麻烦的,而且解析的时候是用的服务器端的资源。
不妨换个方法用javascript来代替你的php!!!!,这样即可减少php脚本的代码量,还可以把解析分页的工作交给客户端自己来作。不过javascript调试起来可能会比较麻烦。
最重要的是可以简化分页显示时,解析模板遇到的痛苦。
下面用一个支持pear的itx模板工具解析的模板.
其中<!-- BEGIN page -->和<!-- END page -->表示一个块,{recordcount}这种类似的字符串是变量。
----------------list.tpl---------------------
//其它的html代码
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
<TR>
<TD align="right" nowrap>
<script src="/blog_article/images/page.js" src="/blog_article/images/page.js" language="javascript"></script>
<script language="javascript"><!--
BEGIN page -->
recordCount = {recordcount};
show = {showinonepage}
pageCount = {pagecount};
pageNow = {page};
pageStr = "?page=_page_";
document.write(showListPage0(recordCount, show, pageCount, pageNow, pageStr));
<!-- END page
// --></script>
</TD>
</TR>
</TABLE>
//其它的html代码
--------------------page.js------------
//---------------共 20 条记录,当前 3/5 页 首页 上一页 下一页 尾页 GO-------------------
//recordCount = 20;
//show = 20
//pageCount = 5;
//pageNow = 3;
//pageStr = "?page=_page_";
//document.write(showListPage(recordCount, show, pageCount, pageNow, pageStr));
function showListPage0(recordCount, show, pageCount, pageNow, pageStr){
if(pageCount<1) pageCount =0;
if(pageNow<1) pageNow = 0;
str = '<form name="frmpage">共 <B>'+recordCount+'</B> 条记录,当前 <B>'+pageNow+'/'+pageCount+'</B> 页';
if(pageNow<=1)
str += " 首页 ";
else
str += " <A href=""+pageStr.replace("_page_",1)+"" href=""+pageStr.replace("_page_",1)+"">首页</A> ";
if(pageNow<=1)
str += " 上一页 ";
else
str += " <A href=""+pageStr.replace("_page_",(pageNow-1))+"" href=""+pageStr.replace("_page_",(pageNow-1))+"">上一页</A> ";
if(pageNow>=pageCount)
str += " 下一页 ";
else
str += " <A href=""+pageStr.replace("_page_",(pageNow+1))+"" href=""+pageStr.replace("_page_",(pageNow+1))+"">下一页</A> ";
if(pageNow>=pageCount)
str += " 尾页 ";
else
str += " <A href=""+pageStr.replace("_page_",pageCount)+"" href=""+pageStr.replace("_page_",pageCount)+"">尾页</A> ";
str += "跳到<input type=\"text\" name=\"txtpage\" size=\"3\">页";
str += "<input type=\"button\" value=\"GO\" onclick=\"pagego0(document.frmpage.txtpage.value,"+pageNow+","+pageCount+",'"+pageStr+"')\"></form>";
return str;
}
function pagego0(pageGo,pageNow,pageCount,pageStr){
if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)
window.location = pageStr.replace("_page_", pageGo);
}
另外这种方法即使不用模板,也可以用,也一样是一种好的分页解决方案,只要将{recordcount}这种类似的字符串用变量的值替换就可以了。