注册
登陆
首页
关于
新闻
文档
论坛
下载
用户名
密码
记住我
还未注册?
文章管理
通过email发送
Email 地址
*
标题
*
内容
*
xoops数据分页怎么用? 说明:因为例子的后面的流程来自不同作者,所以不是完全匹配的。保持原文完整,我没有进行编辑。学习重在理解,理解了使用方法,就可以自己应用了。 //////////////////////////////////////////////////////////////////////////////// 首先是例子 $start = (!isset($_REQUEST['start']))? '':$_REQUEST['start']; if ($start=='') $start=0; //前面2行照抄 $sql_query = "select * from ".$xoopsDB->prefix('XXXXXXX')." WHERE account='$account' ORDER BY date DESC ";//求总笔数用的 $total = mysql_num_rows(mysql_query($sql_query)); $result = $xoopsDB->query($sql_query) or die(mysql_error()); $page_num=30;//一页有30行 $nav = new XoopsPageNav($total,$page_num,$start); $sql="select * from ".$xoopsDB->prefix('xxxxxx')." WHERE account='$account' ORDER BY date DESC LIMIT ".$start.",".$page_num;//有 LIMIT 用来分页 $arr = array(); while($rows = $xoopsDB->fetchArray($result)){ $arr[] = $rows; } $xoopsTpl->assign('show_data',$arr);// 秀出结果 $xoopsTpl->assign('page',$nav->renderNav());//显示 (1) 2 3 4 » 横式选择条 另一种是直式 $nav->忘记了 show_data.html <{foreach from=$show_data item=data}> <{$data.date}> <{/foreach}> <{$page}> //////////////////////////////////////////////////////////////////////// 下面是流程说明: 1. 参数初始化 $start = $_GET['start']; //起始数 $perPage = 5; //每页记录数 2. 生成查询条件 这一步我建议使用Criteria,为什么呢?因为xoopsDB的很多方法都支持这一种对象,而且是可以和SQL相对分离,易于移植。 $sql = "SELECT * FROM table ".$criteria->renderWhere(); 3. 取得总记录数 $xoopsDB->getCount($criteria); //这就是为什么使用Criteria的原因了。 4. 获取记录 $xoopsDB->query($sql, $perPage, $start); //感谢XOOPS提供了这么好的query方法! fetchRow()之类的不用我多说了吧。 5. 生成分页导航栏 include(XOOPS_ROOT_PATH."/class/pagenav.php"); //加载pagenav.php $nav = new XoopsPageNav($productCount, $perPage, $start, "start", $extra_arg); //生成pagenav实例 $pagenav = $nav->renderNav(4); //生成pagenav的HTML代码 需要注意的地方: 1. 生成pagenav实例是,第4个参数是与参数初始化的$_GET['start']对应的,这个参数改变了,那初始化的时候也要变。 最后一个参数$extra_arg是附加参数,再于效果嘛,自己试一下就知道了。 2.renderNav($count)是指导航栏里面显示多少个页码。 6.往模板输出 这个也不用我多说吧。 $xoopsTpl->assign($pagenav); //这个少了你就不分翻页了 更多... http://xoops.org.cn/modules/article/view.article.php/c15/78