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;}
}
?></pre>