如果你想从 URL 中移除 page=0、page=负数 或任何指定的 page 参数,可以使用 preg_replace() 进行正则匹配和替换。以下是几种情况的解决方案:
1. 移除 page=0 或 page=负数
如果 $cPage 是当前页码(可能是 0 或负数),并且你想从 URL 中移除 page=xxx(其中 xxx 是 0 或负数),可以使用:
$url = "index.php?page=0&foo=bar";
$cPage = 0; // 或 -1, -2 等
// 匹配 page=0 或 page=负数,并移除
$newUrl = preg_replace('/([&?])page=-?d+(&|$)/', '$1', $url);
// 处理可能的残留 ? 或 &
$newU...
以前一都是在用mysql数据库,在mysql里可以用select * from table LIMIT 5,10 实现从数据中间位置取固定长短的数据,当是到了公司里,公司是用是sqlserver 搞了半天发现sqlserver里不支持limit函数,无奈到网上找了找资料 发现了这么一个sql语句 SELECT TOP 页大小 * FROM Table1 WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id)) ORDER BY ID 试了一下很是不错,而且还可以解决大量的数据分页,但是用这个的话你必须在建立表的时候有个“id”字段,并且它为你表的主键。在这里我把它编写成了组件,下面给大家看我的具体实现。 /...
动机: 为了方便用户查看大批量数据,我们会用到动态分页,因此分页功能是我们在网站上见过的最普遍也是最常用的一个功能模块了。而以往的信息分页都是连接到数据库的,每一次点击都必须要后台数据库的支持。这样不但服务器的负担加重,而且严重的影响用户浏览的速度.试想,如果把分页的功能放到客户端,那会产生什么样的效果呢?呵呵,看看下面的设计吧! 。材料: XML卷之动态分页有2个文件:pages.xml 和 pages.xsl作用: 把分页的功能放到客户端。在不刷新页面的情况下对数据进行过滤筛选,有效的提高浏览数据功能的效率。 效果: 浏览这里 代码: pages.xml <?xml version="1.0" encoding="gb2312" ?...
以前一都是在用mysql数据库,在mysql里可以用select * from table LIMIT 5,10 实现从数据中间位置取固定长短的数据,当是到了公司里,公司是用是sqlserver 搞了半天发现sqlserver里不支持limit函数,无奈到网上找了找资料 发现了这么一个sql语句
SELECT TOP 页大小 *
FROM Table1
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
试了一下很是不错,而且还可以解决大...
在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询操作基础哦。
作为一个Web程序,经常要和不计其数的数据打交道,比如会员的数据,文章数据,假如只有几十个会员那很好办,在一页显示就可以了,可是假如你的网站是几千甚至几十万会员的话,如果都在一页打开的话无论对浏览器还是观看者都是一种折磨。
相信每个学习PHP的新手都会对分页这个东西感觉很头疼,不过有了默默的这一水帖,你肯定会拍拍脑袋说,嘿,原来分页竟然如此简单?的确,现在请深呼吸一口新鲜的空气,仔细的听默默给你一点一点的分解。
假设我们要处理1000条数据,要在每页中显示10条,这样的话就会分100页来显示,咱们先看一看在mysql里提取10...
所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数每页多少条记录($PageSize)?
当前是第几页($CurrentPageID)?
现在只要再给我一个结果集,我就可以显示某段特定的结果出来。
至于其他的参数,比如:上一页($PreviousPageID)、下一页($NextPageID)、总页数($numPages)等等,都可以根据前边这几个东西得到。
以mysql数据库为例,如果要从表内截取某段内容,sql语句可以用:select * from table limit offset, rows。看看下面一组sql语句,尝试一下发现其中的规率。
前10条记录:select * from table limit 0,10
第11至20条记录:select * from tabl...
Smarty中的分页有很多方法。
1。使用Smarty的分页插件,如Pager,pagnition,sliding_page等,不过感觉都不是太好,几乎都有一些Bug。
有兴趣试用和自己去改进的朋友可以看看:
http://smarty.php.net/contribs/p ... /function.pager.php
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=2327
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=1604
2。使用分页类库,呵呵,这个网上就太多了,一大把,不过我还没有发现写得很好的,特别是容易扩展的。
在搜索的时候还看到一个号称分页类终结者的,哈哈,有点好笑。分页类中把SQL都包含进去了,这个是绝对不能容忍的,可以说作者对OO的认识还比较浅。...
CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO 插入数据:(2万条,用更多的数据测试会明显一些) SET IDENTITY_INSERT TestTable ON declare @i int set @i=1 while @i<=20000 begin insert ...
随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。 在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数...
表中主键必须为标识列,[ID] int IDENTITY (1,1)//每次自增一 1.分页方案一:(利用Not In和SELECT TOP分页) 语句形式: SELECT TOP 10 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 20 id FROM TestTable ORDER BY id)) ORDER BY ID SELECT TOP 页大小 * FROM TestTable WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id)) ORDER BY ID 2.分页方案二:(利用ID大于多少和SELECT TOP分页) 语句形式: SELECT TOP 10 * FROM TestTable WHERE (ID ...
引言 大家都知道,Display标签处理大数据量的时候,排序会反应迟顿。因此标签的设计者提供了外部排序功能,也就是由用户自己来处理排序逻辑,我参照字面及实际的意思,将external译为外部排序,好象不太准确,谁有更好的译法,请告诉我。 这是Display官方文档的译文,第一次翻译E文,不妥之处见谅。特意以中英文对照的形式,大家对照着来理解。有两句话没有译出来,谁知道怎么译请告诉我。 The default behavior of displaytag is working with a full list, handling sorting and paging trasparently. Sometimes, however, you could need to give displaytag only the records displayed, handling sorting and paging by y...
以下是java类 /* * PageNumber.java * * Created on 2006年10月9日, 上午8:21 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package page; import java.io.*; import java.sql.*; import java.lang.String; /** *只需传进三个参数,一个是每页显示记录集数,一个是记录集,一个是URL *取得分页效果只需调用一个getPage即可 * @mc1035 */ public class PageNumber { private int rowCount=1, //总的记录数。 pageSize=1, //每页显示的记录数。 showPage=1, //设置欲显示的页码数。 pageCount=1; //分页之后的总页数。 private ResultSet rs; private String url; ...
1、前言 分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分页显示的原理和实现方法有所了解。本文适合初学者阅读,所有示例代码均使用php编写。2、原理所谓分页显示,也就是将数据库中的结果集人为的分成一段一段的来显示,这里需要两个初始的参数:每页多少条记录($PageSize)?当前是第几页($CurrentPageID)?现在只要再给我一个结果集,我就可以显示某段特定的结果出来。至于其他的参数,比如:上...
利用临时表检索数据库数据,然后分页显示,采用临时表存放数据中间结果,根据中间结果显示数据,数据的显示采用隔行的方式处理,对于复杂的查询,特别是涉及到多表的数据查询,如果直接使用查询条件,系统的开销将很大,利用临时表把数据先保存,然后处理。这样对数据库的查询只要开销一次,只要把连接数据库的用户信息和数据表改变即可使用 <? //连接数据库 $dbh = mysql_connect('localhost:3306','root',''); mysql_select_db('test'); //把数据检索的结果保存到临时表中 $ls_sql = ' create temporary table temps '; $ls_sql .= ' select lk_title,lk_link from lk_t_content '; $ls_sql .= " where lk_title like '%".$searchcont...