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 "<hr/>".$sql."<hr/>";

mysql_query($sql);

if($printsql) echo "<hr/>".$sql2."<hr/>";

$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 "<hr/>".$strsql."<hr/>";

$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 "<hr/>".$strsql."<hr/>";

$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 "<hr/>".$strsql."<hr/>";

$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 "<hr/>".$strsql."<hr/>";

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 "<hr/>".$tsql."<hr/>";

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 "<hr/>".$psql."<hr/>";

$pagerset=getResultSetData($psql);//取得当前页记录

}

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

}

?>

php高效获取数据分页

时间: 2024-11-08 12:43:45

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

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

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

最好用的兼容多种数据库通用高效的大数据分页功能

通用权限管理系统底层有一个通用分页查询功能,该功能可实现多种数据库的查询,支持多表关联分页查询,目前是最完善的分页功能实现. 下面代码是使用的方法截图: /////////////////////////////// 后台代码截图1 /////////////////////////////// 后台代码截图2 /////////////////////////////// 后台代码截图3 /////////////////////////////// 后台代码截图4 /////////////

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

MVC 分页获取数据 及点选按钮

@model PagedList<Lyxm.Entity.Suggestion>@using Webdiyer.WebControls.Mvc <div>    <ul class="breadcrumb">        <li>            @Html.ActionLink("基础维护", "", "")            <span class=&quo

分页“真分页”获取数据

对于初学的新手来说,做数据分页的时候,经常是去网上下载个控件,所谓控件分页,有的人认为很好,因为方便,但是对于老鸟来说 控件分页查询效率太低,在实际工作中,也会带来致命的弱点,所以,我们一般采用真分页,部分查询,效率没得说!! 石家庄ReactNative交流群 526955818欢迎大家加入 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threadi

使用ivx实现分页获取数据的经验总结

在实际案例中我们经常需要展示一些数据,而这些数据都是存放在后台的数据库之中的而且可能数量庞大,在前台的界面中一下子全都展示出来肯定是不现实的,另外一次性让后台传输如此多的数据到前台也会有很大的延迟,使用户体验较差.因此,我们就需要采取一种分页的方式来少量多次的获取数据,这样用户每次操作之后都能很快得到反馈,同时前台也不用存放很多数据造成案例卡顿,今天就来说说如何实现这种分页效果.1.组件结构Demo中的结构比较简单,页面下放置了一个列作为案例主体,列内添加了一个分页组件,还有一个for容器用于循

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

问题代码如下: var result=repository.QueryOver<modal>() .Where(p=>p.Code==Code) .OrderBy(p=>p.ID).Asc .Skip(pageSize*(page-1)) .Take(pageSize).List() 当设置page=1,pageSize=10时,获取数据正常:当设置的page大于1时,获取不到任何数据:原因尚未找到. 解决办法:修改代码如下 var result= repository.Query

HBase 高性能获取数据 - 多线程批量式解决办法

在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题.下面首先简单介绍了搜索引擎的性能,然后详细说明了HBase与MySQL的性能对比,这里的数据都是经过实际的测试获得的.最后,给出了采用多线程批量从HBase中取数据的方案,此方案经过测试要比通过自定义Filter的方式性能高出很多. Solr和HBase专辑 1.“关于Solr的使用总结的心得体会”(http:

【干货】再上数据分页控件 ━ 更加灵活,更加实用-提供源码

再上数据分页控件-更加灵活,更加实用 关于数据分页的文章太多了,各有各的一套方案,但大多都很类似,要么使用存储过程,要么直接使用代码进行分页.各种方案分页的效率也不尽相同,我们不一定要找一个最高效的(根据实际的项目情况),找一个最合适的就OK了.下面我要谈的分页控件非常灵活,可以支持任意类型的数据库,同时可以支持存储过程或代码分页(会自动判断),也支持多表的分页,非常的方便.对于数据分页的相关文章,在我的博客中可以找到很多,下面我做一个简单的汇总,方便大家查阅. 1. 原创企业级控件库之大数据量