程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 如何使用PHP實現復雜檢索後並顯示分頁

如何使用PHP實現復雜檢索後並顯示分頁

編輯:PHP綜合

對於復雜數據的檢索,檢索後如何分頁顯示,PHP下的這些難題本文教你搞定!

系統標題:復雜檢索數據並分頁顯示的處理方法
系統功能:利用臨時表檢索數據庫數據,然後分頁顯示的方法:
處理方法:采用臨時表存放數據中間結果,根據中間結果顯示數據
數據的顯示采用隔行的方式處理
處理優點:對於復雜的查詢,特別是涉及到多表的數據查詢,如果直接使用查詢條件,系統的
開銷將很大,利用臨時表把數據先保存,然後處理。這樣對數據庫的查詢只要開銷一次。
使用方法:只要把連接數據庫的用戶信息和數據表改變即可使用

<?
//連接數據庫
$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 '%".$searchcontent."%' ";
$res = MySQL_query($ls_sql, $dbh);

//得到檢索數據的總數
$ls_sql = 'select count(*) as rcnt_con from temps ';
$res = MySQL_query($ls_sql, $dbh);
$rcon = $row["rcnt_con"];

$pages=ceil($rcon / 20); //$pages變量現在總的頁數
if (empty($offset)) {
$offset=1;
$curline = 0;
} else
$curline = ($offset - 1) * 20;
//打印表頭
PRint '<table width="100%" border="0">';
print '<tr class="text"> <td width="50%"> <div align="center">';
if ($offset <> 1) { //如果偏移量是0,不顯示前一頁的鏈接
$newoffset=$offset - 1;
print "<a href='$PHP_SELF?offset=$newoffset'>前一頁</a>";
} else {
print "前一頁";
print " ";
}
//顯示所有的頁數
for ($i=1; $i <= $pages; $i++) {
$temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>";
print $temps;
print " ";
}
//檢查是否是最後一頁
if ($pages!=0 && $offset!=$pages) {
$newoffset=$offset+1;
print "<a href='$PHP_SELF?offset=$newoffset'>下一頁</a>";
} else print "下一頁";
print '</div> </td>';
print '<td width="50%"> <div align="center">';
print "當前頁:".$offset." 共".$pages."頁";
print '</div> </td>';
print "</table>";

//顯示查詢信息
print '<table width="100%" border="1">';
print '<tr class="text"> ';
print '<td width="100%"> <div align="center">查詢結果信息</div> </td>';
print '</tr>';

$query = "select lk_title,lk_link from temps order by lk_title desc LIMIT ".$curline.",20";
$res = MySQL_query($query, $dbh);

$li_num = 0;
while ($row = MySQL_fetch_array($res)) {
//采用隔行顯示的方法顯示信息內容
if ($li_number == 0) {
<tr bgcolor="#dedede">
$li_number = 1;
} else {
<tr bgcolor="#ededed">
$li_number = 0;
}
$tempstr = "<a href='".$row[lk_link]."'>".$row['lk_title']."</a>";
print '<td width="100%" height="15" class="text">&nbsp;'.$tempstr.'</td>';
print '</tr>';
}
print "</table>";
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved