用PHP3實現MySQL數據的分頁顯示
發表于:2007-07-14來源:作者:點擊數:
標簽:
建表及生成 測試 數據( mysql .sql): create table pagetest( idint unsigned not null primary key auto_increment, nametext not null ); insert into pagetest(name) values('您好,朋友,這是分頁測試數據!'); insert into pagetest(name) values('第2
建表及生成
測試數據(
mysql.sql):
create table pagetest(
id int unsigned not null primary key auto_increment,
name text not null
);
insert into pagetest(name) values('您好,朋友,這是分頁測試數據!');
insert into pagetest(name) values('第2條');
insert into pagetest(name) values('第3條');
insert into pagetest(name) values('第4條');
insert into pagetest(name) values('第5條');
insert into pagetest(name) values('第6條');
insert into pagetest(name) values('第7條');
insert into pagetest(name) values('第8條');
insert into pagetest(name) values('第9條');
insert into pagetest(name) values('第10條');
insert into pagetest(name) values('第11條');
insert into pagetest(name) values('第12條');
insert into pagetest(name) values('第13條');
顯示程序(mysql.
php3):
<?
$pagesize = 2;//每頁顯示2條記錄
$server = mysql_pconnect("localhost","test","test") or die("無法連接到localhost主機上的
MySQL數據庫服務器!");//以test賬號、test密碼連接localhost主機上的MySQL數據庫
$db = mysql_select_db("test") or die("無法連接到test數據庫!");
$sql = "select count(*) as total from pagetest";//生成查詢記錄數的SQL語句
$rst = mysql_query($sql) or die("無法執行SQL語句:$sql !");//查詢記錄數
$row = mysql_fetch_array($rst) or die("沒有更多的記錄!");//取出一條記錄
$rowcount = $row["total"];//取出記錄數
mysql_free_result($rst) or die("無法釋放result資源!");//釋放result資源
$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出總共有幾頁
if(!isset($pageno)) $pageno = 1;//在沒有設置pageno時,缺省為顯示第1頁
if($pageno<1) $pageno = 1;//若pageno比1小,則把它設置為1
if($pageno>$pagecount) $pageno = $pagecount;//若pageno比總共的頁數大,則把它設置為最后一頁
if($pageno>0){
$href = eregi_replace("%2f","/",urlencode($
PHP_SELF));//把$PHP_SELF轉換為可以在URL上使用的字符串,這樣的話就可以處理中文目錄或中文文件名
if($pageno>1){//顯示上一頁的褳接
echo '<a href="' . $href . '?pageno=' . ($pageno-1) . '">上一頁</a> ';
}
else{
echo '上一頁 ';
}
for($i=1;$i<$pageno;$i++){
echo '<a href="' . $href . '?pageno=' . $i . '">' . $i . '</a> ';
}
echo $pageno . ' ';
for($i++;$i<=$pagecount;$i++){
echo '<a href="' . $href . '?pageno=' . $i . '">' . $i . '</a> ';
}
if($pageno<$pagecount){//顯示下一頁的褳接
echo '<a href="' . $href . '?pageno=' . ($pageno+1) . '">下一頁</a> ';
}
else{
echo '下一頁 ';
}
$offset = ($pageno-1) * $pagesize;//算出本頁第一條記錄在整個表中的位置(第一條記錄為0)
$sql = "select * from pagetest LI
MIT $offset,$pagesize";//生成查詢本頁數據的SQL語句
$rst = mysql_query($sql);//查詢本頁數據
$num_fields = mysql_num_fields($rst);//取得字段總數
$i = 0;
while($i<$num_fields){//取得所有字段的名字
$fields[$i] = mysql_field_name($rst,$i);//取得第i+1個字段的名字
$i++;
}
echo '<table border="1" cellspacing="0" cellpadding="0">';//開始輸出表格
echo '<tr>';
reset($fields);
while(list(,$field_name)=each($fields)){//顯示字段名稱
echo "<th>$field_name</th>";
}
echo '</tr>';
while($row=mysql_fetch_array($rst)){//顯示本頁數據
echo '<tr>';
reset($fields);
while(list(,$field_name)=each($fields)){//顯示每個字段的值
$field_value = $row[$field_name];
if($field_value==""){
echo '<td> </td>';
}
else{
echo "<td>$field_value</td>";
}
}
echo '</tr>';
}
echo '</table>';//表格輸出結束
mysql_free_result($rst) or die("無法釋放result資源!");//釋放result資源
}
else{
echo "目前該表中沒有任何數據!";
}
mysql_close($server) or die("無法與服務器斷開連接!");//斷開連接并釋放資源
?>
原文轉自:http://www.anti-gravitydesign.com