xoops数据分页怎么用? |
||||
---|---|---|---|---|
资深会员
![]() ![]() 注册日期:
2006/5/25 19:53 所属群组:
注册会员 等级: 17; EXP: 12
HP: 0 / 403 MP: 112 / 6220 ![]() |
我看了news模块的源码如下,但是还是没明白具体怎么用它
$totalcount = NewsStory::countPublishedByTopic($xoopsOption['storytopic'], $xoopsModuleConfig['restrictindex']); if ( $totalcount > $scount ) { include_once XOOPS_ROOT_PATH.'/class/pagenav.php'; $pagenav = new XoopsPageNav($totalcount, $xoopsOption['storynum'], $start, 'start', 'storytopic='.$xoopsOption['storytopic']); $pagenav = new XoopsPageNav($totalcount, $xoopsOption['storynum'], $start, 'start', 'storytopic='.$xoopsOption['storytopic']); if(news_isbot()) { // A bot is reading the news, we are going to show him all the links so that he can read everything $xoopsTpl->assign('pagenav', $pagenav->renderNav($totalcount)); } else { $xoopsTpl->assign('pagenav', $pagenav->renderNav()); } } else { $xoopsTpl->assign('pagenav', ''); }
2006/8/26 13:17
|
|||
|
回复: xoops数据分页怎麽用? |
||||
---|---|---|---|---|
新进会员
![]() ![]() 注册日期:
2006/8/23 21:39 所属群组:
注册会员
帖子:
1
等级: 1; EXP: 0
HP: 0 / 0 MP: 0 / 0 ![]() |
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}> <td><{$data.date}></td> <{/foreach}> <tr><{$page}></tr>
2006/9/2 14:04
|
|||
|
回复: xoops数据分页怎麽用? |
||||
---|---|---|---|---|
Support Team
![]() ![]() 注册日期:
2005/12/1 9:15 来自 GZ.CN
所属群组:
注册会员 Dev+Hack 等级: 16; EXP: 64
HP: 0 / 391 MP: 105 / 6583 ![]() |
我大概写一个流程出来,至于代码的实现留给楼主思考的空间:
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); //这个少了你就不分翻页了 ![]()
2006/9/3 10:02
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
资深会员
![]() ![]() 注册日期:
2006/5/25 19:53 所属群组:
注册会员 等级: 17; EXP: 12
HP: 0 / 403 MP: 112 / 6220 ![]() |
感谢两位,收藏了。wenhsiang不知道是哪位的马甲
Criteria我一点都不知道噢!!!Xoops 要出个像PHP手册一样的东东就好了。我现在是要什么功能就找相似功能的模块去看怎么弄,好费时间啊
2006/9/4 12:04
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
资深会员
![]() ![]() 注册日期:
2006/5/25 19:53 所属群组:
注册会员 等级: 17; EXP: 12
HP: 0 / 403 MP: 112 / 6220 ![]() |
這是我按照wenhsiang回復做的一個完整的頁面了,由于代碼少很容易看明白(雖然代碼不是很好)所以放這里來。也算拋磚引玉吧:scottlai 說的$criteria對象我不會用?所以按他的方法我沒弄成,有哪位愿意詳述,我在這感激不盡。
2007/1/10 10:09
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
网站管理员
![]() ![]() 注册日期:
2004/6/25 19:16 所属群组:
网站管理员 注册会员 Dev+Hack 等级: 54; EXP: 76
HP: 537 / 1344 MP: 1982 / 28259 ![]() |
直接使用用户提交的内容而不做处理,是数据库查询的大忌
$fieldtype = empty($_POST["fieldtype"])?$_GET["fieldtype"]:$_POST["fieldtype"]; $fieldvalue = empty($_POST["fieldvalue"])?$_GET["fieldvalue"]:$_POST["fieldvalue"]; $sql="select * from ".$xoopsDB->prefix("telephone")." where `$fieldtype` LIKE '%$fieldvalue%'";
2007/1/11 2:04
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
资深会员
![]() ![]() 注册日期:
2006/5/25 19:53 所属群组:
注册会员 等级: 17; EXP: 12
HP: 0 / 403 MP: 112 / 6220 ![]() |
這個主要是弄分頁的試驗,是不過濾了。
xoops是不是提供這種過濾機制?應該怎么調用?
2007/1/11 16:29
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
新进会员
![]() ![]() 注册日期:
2009/9/16 13:39 所属群组:
注册会员
帖子:
9
等级: 1; EXP: 86
HP: 0 / 21 MP: 3 / 124 ![]() |
引用:
那么请问一下解决的方法好吗?等待您的回复……
2009/9/28 16:21
|
|||
|
回复: xoops数据分页怎么用? |
||||
---|---|---|---|---|
新进会员
![]() ![]() 注册日期:
6/27 16:58 所属群组:
注册会员
帖子:
2
等级: 1; EXP: 2
HP: 0 / 0 MP: 0 / 0 ![]() |
6/28 15:55
|
|||
|
回复: xoops数据分页怎麽用? |
||||
---|---|---|---|---|
新进会员
![]() ![]() 注册日期:
8/3 10:58 所属群组:
注册会员
帖子:
5
等级: 1; EXP: 34
HP: 0 / 8 MP: 1 / 2 ![]() |
你用mysql_num_rows xoops没有封装mysql类吗 刚刚使用xoops 感觉不像cms 像个论坛一样
8/3 11:22
|
|||
|