浏览 2080 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-27
是用面向对象思想也好,基于过程也罢,自己写框架也行,用现成的框架也行,直接写sql语句也行,可能有n多种实现方法,我想大家都能贴出个基本架子出来,相互学习借鉴一下 我先抛砖引玉,贴出我的代码,大家提提意见,谢谢! include_once($_SERVER['DOCUMENT_ROOT'] . '/logic/BookLogic.php'); include_once($_SERVER['DOCUMENT_ROOT'] . '/global/init.php'); //公共类库 $flush_cache = $_REQUEST['flushcache']; //强制刷新缓存/模板参数 $page = intval($_REQUEST['page']) ? intval($_REQUEST['page']) : 1; //当前页码 $search = array( 'bookname' => $_GET['bookname'], //获取搜索参数 'author' => $_GET['author'], 'publish' => $_GET['publish'], ); $memcacheKey = make_cacheid($search, 'page'); //生成缓存id if ($flush_cache=='1' || !$content = MemcacheHandle::get($memcacheKey)) //检查缓存 { $num = 20; //每页条数 $oBook = new BookLogic(); //创建对象 $list = $oBook->getList($search, $num, $page); //获取列表 if (PEAR::isError($list)){Message::showError($list);} //错误处理 $links = page($num, $list['total']); //分页 $assign = array( "total" => $list['total'], //记录总数 "prevpage" => $links['back'], //前一页id "nextpage" => $links['next'], //后一页id "pages" => $links['pages'], //完整的分页链接 "list" => $list['data'], //列表数据 ); $content = smarty_fetch($assign, 'booksearch.tpl', $flushcache); //smarty模板赋值 MemcacheHandle::set($memcacheKey, $content, 1800); //设置缓存及过期时间 } echo $content; //页面呈现 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-28
查询分页,我这样做,
先查一次总数 select count(*) from tablea where where... 再查一次结果 select a,b from tablea where where... , 就可以了。 如果愿意,也可以适当缓存结果, 应该还可以通过服务端语言滚动结果集游标的办法来分页,但未试过。 |
|
返回顶楼 | |