php高效获取数据分页

mysql.php 获取数据库中的记录,完全个人经验总结,仅供参考!
<?php
/**
*PHP+MYSQL数据库基本功能
*http://blog.csdn.net/yown
*/
############################################
#获取序列ID
############################################
function getSequence() {
$sql = "update sequence set id=last_insert_id(id+1);";
$sql2= "select last_insert_id();";

global $dbuser,$dbpass,$host,$database,$printsql;

$link = mysql_connect($host,$dbuser,$dbpass);
if(! $link){
return mysql_error();
}

mysql_select_db($database);
mysql_query("SET NAMES UTF8");
if($printsql) echo "


".$sql."

";
mysql_query($sql);
if($printsql) echo "

".$sql2."

";
$result = mysql_query($sql2);

if(mysql_num_rows($result)==0){
mysql_close($link);
return "";
}
$myrow = mysql_fetch_row($result);
$ret=$myrow[0];

mysql_close($link);
return $ret;
}
############################################
#获取strSql第N条记录中的第N列数据,下标从1开始
############################################
function getData($strsql,$row,$col) {
global $dbuser,$dbpass,$host,$database,$printsql;

$link = mysql_connect($host,$dbuser,$dbpass);
if(! $link){
return mysql_error();
}

mysql_select_db($database);
mysql_query("SET NAMES UTF8");
if($printsql) echo "


".$strsql."

";
$result = mysql_query($strsql);

if(mysql_num_rows($result)==0){
mysql_close($link);
return "";
}
$i=0;
while($myrow = mysql_fetch_row($result)){

if($i==$row-1){
$ret=$myrow[$col-1];
break;
}
$i=$i+1;
}

mysql_close($link);
return $ret;

}

############################################
#获取strSql第N条记录
############################################
function getRowData($strsql,$row) {
global $dbuser,$dbpass,$host,$database,$printsql;

$link = mysql_connect($host,$dbuser,$dbpass);
if(! $link){
return mysql_error();
}

mysql_select_db($database);
mysql_query("SET NAMES UTF8");
if($printsql) echo "


".$strsql."

";
$result = mysql_query($strsql);

if(mysql_num_rows($result)==0){
mysql_close($link);
return "";
}
$i=0;
while($myrow = mysql_fetch_array($result)){

if($i==$row-1){
$ret=$myrow;
break;
}
$i=$i+1;
}

mysql_close($link);
return $ret;

}

############################################
#获取strSql记录集存入数组中
############################################
function getResultSetData($strsql) {
global $dbuser,$dbpass,$host,$database,$printsql;

$link = mysql_connect($host,$dbuser,$dbpass);
if(! $link){
return mysql_error();
}

mysql_select_db($database);
mysql_query("SET NAMES UTF8");
if($printsql) echo "


".$strsql."

";
$result = mysql_query($strsql);

if(mysql_num_rows($result)==0){
mysql_close($link);
return "";
}

while($myrow = mysql_fetch_array($result)){
$ret[]=$myrow;
}

mysql_close($link);
return $ret;
}

############################################
#执行strSql
############################################
function executeSql($strsql) {
global $dbuser,$dbpass,$host,$database,$printsql;

$link = mysql_connect($host,$dbuser,$dbpass);
if(! $link){
return mysql_error();
}

mysql_select_db($database);
mysql_query("SET NAMES UTF8");
if($printsql) echo "


".$strsql."

";
mysql_query($strsql);
$ret =mysql_affected_rows($link);
mysql_close($link);
return $ret;
}

/*
分页
*/
function Pager(&$curpage,&$pagesize,&$tsql,&$psql,&$totalpage,&$totalrow,&$pagerset){

$curpage=isset($curpage)?intval($curpage):1;//当前页
$totalpage=0;//总页数
$totalrow=0;//总记录数
if($printsql) echo "


".$tsql."

";
if($curpage <= 0){
$curpage=1;
}

$totalrow=getData($tsql,1,1);//取得总记录数
$totalrow=strlen(totalrow)==0?0:$totalrow;
if($totalrow>0){
$totalpage=$totalrow%$pagesize==0?(int)($totalrow/$pagesize):(int)($totalrow/$pagesize)+1;
if($curpage>$totalpage){
$curpage=1;
}

$psql=$psql." limit ".(($curpage-1)*$pagesize).",".$pagesize;
if($printsql) echo "


".$psql."

";
$pagerset=getResultSetData($psql);//取得当前页记录
}
if($totalrow==0$totalrow=="0"){ $curpage=1;}

}

?>

时间: 2024-08-25 03:57:07

php高效获取数据分页的相关文章

SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作

server|分页|函数|数据 最近MSDN Magazine上的一篇文章10 Tips for Writing High-Performance Web Applications提到了有效的数据分页技术对提高ASP .NET程序性能的重要性:并给出了一个实现数据分页的stored procedure的例子,抄录如下: CREATE PROCEDURE northwind_OrdersPaged ( @PageIndex int, @PageSize int ) AS BEGIN DECLARE

发布一个高效的数据分页的存储过程 可以轻松应付百万数据

存储过程|分页|数据 CREATE PROCEDURE pageTest  --用于翻页的测试--需要把排序字段放在第一列  (  @FirstID nvarchar(20)=null,  --当前页面里的第一条记录的排序字段的值  @LastID nvarchar(20)=null,  --当前页面里的最后一条记录的排序字段的值  @isNext bit=null,    --true 1 :下一页:false 0:上一页  @allCount int output,   --返回总记录数 

一个高效的数据分页的存储过程

CREATE PROCEDURE pageTest  --用于翻页的测试--需要把排序字段放在第一列  (  @FirstID nvarchar(20)=null,  --当前页面里的第一条记录的排序字段的值  @LastID nvarchar(20)=null,  --当前页面里的最后一条记录的排序字段的值  @isNext bit=null,    --true 1 :下一页:false 0:上一页  @allCount int output,   --返回总记录数  @pageSize i

利用AJAX实现无刷新数据分页_AJAX相关

以前在使用Asp.Net的时候用过GridView这个控件,这个控件自带分页的功能,虽然很丑,但是功能还是很强大的.这里呢,给大家展示一下更加给力的方式--利用AJAX无刷新直接从服务器获取数据分页. 一.实现过程 注意:一下的内容都是在服务器内使用的. 首先要在服务器的路径下建立几个文件,比如,page1.txt,page2.txt,page3.txt. 每个文件中放入数组,如下: 复制代码 代码如下: [{user:'blue',pass:'123'},{user:'aaa',pass:'d

利用AJAX实现无刷新数据分页

以前在使用Asp.Net的时候用过GridView这个控件,这个控件自带分页的功能,虽然很丑,但是功能还是很强大的.这里呢,给大家展示一下更加给力的方式--利用AJAX无刷新直接从服务器获取数据分页. 一.实现过程 注意:一下的内容都是在服务器内使用的. 首先要在服务器的路径下建立几个文件,比如,page1.txt,page2.txt,page3.txt. 每个文件中放入数组,如下: 复制代码 代码如下:[{user:'blue',pass:'123'},{user:'aaa',pass:'ds

performance-如何高效获取计算机所有性能数据

问题描述 如何高效获取计算机所有性能数据 最近在做一个项目需要收集计算机的性能数据,例如 cpu,iops,内存,网络等等,我是用的C#. 我现在采用的方法是PerformanceCounter这个类去创建计数器实例,然后通过NextValue()获取相应的值,获取整体的性能数据还好说. 在收集进程的性能数据遇到了一些问题,因为进程的性能计数器非常多,导致获取一次进程性能数据的cpu占用高达20%,获取一次的时间需要五六秒的时间. 我看任务管理器里面实时获取所有进程的性能数据所占用的cpu并不高

link中如何多线程从DataTable中获取数据?有没有高效不出错的办法?

问题描述 link中如何多线程从DataTable中获取数据?有没有高效不出错的办法? link中如何多线程从DataTable中获取数据?有没有高效不出错的办法?

DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)_jquery

Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 主要功能 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, FixedColumns -- 丰富多样的option和强大的API 支持国际化 超过2900+个单元测试 免

分页解决方案 之 QuickPager的使用方法(PostBack分页、自定义获取数据)

          适用范围:网站后台管理.OA.CRM.CMS等,从关系型数据库里提取数据,或者XML等获取数据,不愿意使用Pager_SQL.DataAccessLibrary的情况.       优点:可以使用自己喜欢的方式获取数据,不仅仅限于关系型数据库,其他的也都可以.       缺点,要写的代码比较多.       Demo下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html       使用方法:   usin