| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
php+sqlserver分页最简单方法http://www.iyit.net 日期:2006-10-6 15:40:18 来源:iyit.net收集 点击: |
听朋友说php+sqlserver分页很麻烦,今天研究了一下,发现其实比php+mysql还简单(实际上mysql也可以这样)。 下面这个函数就是取出符合纪录的第$page页的纪录到数组: function selectpage($querystr,$page,$pagesize) { $r=@mssql_query($querystr); if ($r){ $totalpage = ceil(mssql_num_rows($r)/$pagesize); if (!$page ¦ ¦$page<=0) $page=1; if ($page>$totalpage) $page=$totalpage; $begin = ( $page-1 ) * $pagesize; $rearr=array(); $index=0; if($pagesize>0) mssql_data_seek($r,$begin); while($resultarr=@mssql_fetch_array($r)){ if($pagesize>0) if($index>$pagesize-1) break; $rearr[$index]=$resultarr; $index++; } return $rearr; }else return false; } 我觉得这样只用查询一次,用limit还有查询两次。实际上asp就是用这种方式! 欢迎各位提出意见 --------------------------------------------------------------- 好,鼓励 --------------------------------------------------------------- <? //----------------------- // 通用分页控制…… // 21bird 2002.8.22 //----------------------- //class pagecontrol class pagecontrol{ //properties var $m_recordamount; var $m_pageamount; var $m_currpage = 1; var $recordrow_per_apage = 10; var $m_nextpage; var $m_prevpage; var $m_usingindex; var $m_startindex; var $r; //methods function pagecontrol($r, $recordamount, $p) { $this->r = $r; if (($p == "") ¦ ¦ (round($p) == 0)){ $p=1; } $this->m_currpage = $p; $this->m_recordamount = $recordamount; $this->m_pageamount = ceil($this->m_recordamount/$this->recordrow_per_apage); $this->m_startindex = ($this->m_currpage - 1) * $this->recordrow_per_apage; $this->m_usingindex = $this->m_startindex; //calulate the current page if($this->m_currpage != $this->m_pageamount) $this->m_nextpage = $this->m_currpage + 1; else $this->m_nextpage = $this->m_pageamount; if($this->m_currpage != 1) $this->m_prevpage = $this->m_currpage - 1; else $this->m_prevpage = 1; } function next_record() { if(($this->m_usingindex != $this->m_recordamount - 1) ¦ ¦ ($this->m_usingindex < ($this->recordrow_per_apage))) { $this->m_usingindex ++; $result = 1; } else $result = 0; return $result; } function link_first() { echo "<a href=\"" . $_server['php_self'] . "?p=1\">首页</a>"; } function link_last() { echo "<a href=\"" . $_server['php_self'] . "?p=" . $this->m_pageamount . "\">尾页</a>"; } function link_prev() { echo "<a href=\"" . $_server['php_self'] . "?p=" .$this->m_prevpage . "\">前页</a>"; } function link_next() { echo "<a href=\"" . $_server['php_self'] . "?p=" .$this->m_nextpage . "\">后页</a>"; } function link_any() { echo "<form method=get action=\"" . $_server['php_self'] . "\">直接到<input type=text name=p size = 3>页<input type=submit value = 'go!!!'></form>"; } function getcurrent() { mssql_data_seek($this->r, $this->m_usingindex); list($result) = mssql_fetch_array($this->r); return $result; } } ?> 凑个热闹^_* --------------------------------------------------------------- 在mssql的mssql_query($string,$int); 其中$string可以是sql server存储过程的调用.这样就要自己写一个类似于limit的存储过程,在sql server他虽有top这项功能,但它的翻页,我们那时有个写vb的同事封装了一个用游标翻页的存储过程,由于年事以久,且不是自己封装的所一存储过程的代码找不见了,现在说一下调用过程,望能引发大家的一些思维:应该不是误导^_^ $string="exec web_scrollpage 'fo03t001','complex,description,isroomreqd,isexcludegrp,isautoassign','complex,description,isroomreqd,isexcludegrp,isautoassign',".$page_rows.",".$addvalue; exec web_scrollpage 'fo03t001',---这一段是掉用存储过程,及所要访问的table 'complex,description,isroomreqd,isexcludegrp,isautoassign',----要读的字段 'complex,description,isroomreqd,isexcludegrp,isautoassign',----存储过程中建立临时表所要的字段 ".$page_rows.",".$addvalue-----每页的行数,及开始的位置 在存储过程中是先建临时表,移游标到$addvalue所在的位置,然后移动游标一条条将记录读到临时表里,最后再读一次临时,删掉临时表,就这样是不是很烦. 不过在读大量数据是用数组翻页就不如这样了^_^ 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:我的数据库不能写入,为什么??? 下一篇:如何把金额的小数形式翻译成中文形式,比方说1.1¥翻译成壹圆壹角? 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||