用户名 密码 记住我 还未注册?

xoops数据分页怎么用? [技术论坛 - 模块使用]

XOOPS China 讨论区 > XOOPS Module (模块) > 模块使用 > xoops数据分页怎么用?

正在浏览:   1 名游客



 到底部   前一个主题   下一个主题  [无发表权] 请登录或者注册



xoops数据分页怎么用?
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 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
_________________
邵阳第一站
http://www.shaoyang1.com
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 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
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎麽用?
Support Team
注册日期:
2005/12/1 9:15
来自 GZ.CN
所属群组:
注册会员
Dev+Hack
帖子: 317 | 精华: 2
等级: 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
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 17; EXP: 12
HP: 0 / 403
MP: 112 / 6220
离线
感谢两位,收藏了。wenhsiang不知道是哪位的马甲
Criteria我一点都不知道噢!!!Xoops 要出个像PHP手册一样的东东就好了。我现在是要什么功能就找相似功能的模块去看怎么弄,好费时间啊

2006/9/4 12:04
_________________
邵阳第一站
http://www.shaoyang1.com
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 17; EXP: 12
HP: 0 / 403
MP: 112 / 6220
离线
這是我按照wenhsiang回復做的一個完整的頁面了,由于代碼少很容易看明白(雖然代碼不是很好)所以放這里來。也算拋磚引玉吧:scottlai 說的$criteria對象我不會用?所以按他的方法我沒弄成,有哪位愿意詳述,我在這感激不盡。
<?php
include "../../mainfile.php";
$xoopsOption['template_main'] = 'telephone_index.html';
include 
"../../header.php";

$fieldtype = empty($_POST["fieldtype"])?$_GET["fieldtype"]:$_POST["fieldtype"];
$fieldvalue = empty($_POST["fieldvalue"])?$_GET["fieldvalue"]:$_POST["fieldvalue"];
$start intval( empty($_GET["start"])?0:$_GET["start"] );
$page_num=15;

if (!empty(
$fieldtype) && !empty($fieldvalue)){
$sql="select * from ".$xoopsDB->prefix("telephone")." where `$fieldtype` LIKE '%$fieldvalue%'";
$total mysql_num_rows(mysql_query($sql));
$sql="select * from ".$xoopsDB->prefix("telephone")." where `$fieldtype` LIKE '%$fieldvalue%' order by telephonenum  LIMIT ".$start.",".$page_num;
    
$res=$xoopsDB->query($sql);
    
$arrtel=array();
    while(
$rows=$xoopsDB->fetchArray($res)){
        
$arrtel[]=$rows;
    }
    
$xoopsTpl->assign("telarr",$arrtel);

if ( 
$total $page_num) {
        include_once 
XOOPS_ROOT_PATH."/class/pagenav.php";
        
$nav = new XoopsPageNav($total,$page_num,$start"start""fieldtype=".$fieldtype."&fieldvalue=".urlencode($fieldvalue));
        
$xoopsTpl->assign('page'$nav->renderNav(4));
    } else {
        
$pagenav "";
    }

}

include 
"../../footer.php";

?>

2007/1/10 10:09
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
网站管理员
注册日期:
2004/6/25 19:16
所属群组:
网站管理员
注册会员
Dev+Hack
帖子: 5947 | 精华: 10
等级: 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 Project -- |自由|开源|共享|
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 17; EXP: 12
HP: 0 / 403
MP: 112 / 6220
离线
這個主要是弄分頁的試驗,是不過濾了。

xoops是不是提供這種過濾機制?應該怎么調用?

2007/1/11 16:29
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
新进会员
注册日期:
2009/9/16 13:39
所属群组:
注册会员
帖子: 9
等级: 1; EXP: 86
HP: 0 / 21
MP: 3 / 124
离线
引用:

D.J. 写道:
直接使用用户提交的内容而不做处理,是数据库查询的大忌


$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%'";



那么请问一下解决的方法好吗?等待您的回复……

2009/9/28 16:21
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: xoops数据分页怎么用?
新进会员
注册日期:
6/27 16:58
所属群组:
注册会员
帖子: 2
等级: 1; EXP: 2
HP: 0 / 0
MP: 0 / 0
离线
我过来看看啊。。。注册香港公司离岸公司广州注册公司

6/28 15:55
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 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
工具箱 短消息 Email PDF 书签 打印 举报 回顶部



  [无发表权] 请登录或者注册


可以查看帖子。
不可发帖。
不可回复。
不可编辑自己的帖子。
不可删除自己的帖子。
不可发起投票调查。
不可在投票调查中投票。
不可上传附件。
不可不经审核直接发帖。
不可使用主题类别。
不可使用HTML语法。
不可使用签名档。

[高级搜索]