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;}
 
}

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值