php mysql分页显示图片_php+mysql分页显示的简单示例

php+mysql頁面分頁顯示的簡單示例

//建立與數據庫的連接

$cn=mysql_connect("localhost","root","");

mysql_select_db("mydatabase",$cn);

// 取得記錄總數$rs,計算總頁數用

$sql="select count(*) from myTable";

$rs=mysql_query($sql,$cn);

$myrow = mysql_fetch_array($rs);

$numrows=$myrow[0];

//設定每一頁顯示的記錄數

$pagesize=10;

//計算總頁數

$page_count=$numrows%$pagesize==“0”?intval($numrows/$pagesize):(intval($numrows/$pagesize)+1);

//對當前頁進行合法性檢測

$page= $_GET["page"];

if($page<=0) $page=1;

if($page>=$page_count) $page=$page_count;

//計算記錄偏移量

$offset=$pagesize*($page - 1);

//讀取指定記錄數

$rs=mysql_query("select * from myTable order by id desc limit $offset,$pagesize",$cn);

標題

時間

while ($myrow = mysql_fetch_array($rs));

{

?>

=$myrow["name"]?>=$myrow["time"]?>

}

echo "

";

$pre_page=$page-1;

$next_page=$page+1;

if($page==1)

{

echo "第一頁&nbsp&nbsp上一頁&nbsp&nbsp";

}

else

{

echo "第一頁";

echo "&nbsp&nbsp";

echo "上一頁";

}

if($page==$page_count)

{

echo "&nbsp&nbsp下一頁&nbsp&nbsp最後一頁&nbsp&nbsp";

}

else

{

echo "&nbsp&nbsp";

echo "下一頁";

echo "&nbsp&nbsp";

echo "最後一頁";

}

?>

該示例顯示的分頁格式是“第一頁 上一頁 下一頁 最後一頁”這樣的。在顯示分頁時,注意echo "第一頁";中的路徑,其中$PATH_INFO?為獲取當前的路徑。接著的style=\"text-decoration:none;\"是不顯示鏈接的下劃線,沒有這句將會有一個鏈接的下劃線,可根據愛好自行選擇。

如果要顯示成[1][2][3]…這樣的形式,請參考下面的代碼,亦提供另外一種分頁顯示方法。在實現中共有兩個文件:index1.php和index2.php。

其中index1.php的源代碼如下:

< form name="nform" method="GET">

//使用include()函數將index2.php包含進來

include("index2.php");

//設定每一頁顯示的記錄數

$pagesize=10;

//建立與數據庫的連接

$cn=mysql_connect("localhost","root","");

mysql_select_db("mydatabase",$cn);

// 取得記錄總數$rs,計算總頁數用

$sql="select * from myTable";

$rs=mysql_query($sql,$cn);

//返回的結果集不為空,則執行以下代碼塊

if($rs)

{

//取得返回的記錄總數

$numrows=mysql_num_rows($rs);

//計算總頁數

$page_count=$numrows%$pagesize==“0”?intval($numrows/$pagesize):(intval($numrows/$pagesize)+1);

//對當前頁進行合法性檢測

$page= $_GET["page"];

if($page<=0) $page=1;

if($page>=$page_count) $page=$page_count;

//在此調用index2.php文件中的方法

showonepage($rs,$page,$pagesize);

//設置頁面下方顯示的頁面選擇

//..........

//加載一個div,使其居右顯示

$k=$_GET["page"]==""?1:$_GET["page"];

if($k>$page_count) $k=$page_count;

if($k<=0) $k=1;

echo "

";

if($page_count>=10)

{

for ($i=($k-5>0?($page_count-$k<5?($page_count-9):($k-4)):1);$i<=($k+5<10?10:($k+5>$page_count?($page_count):$k+5));$i++)

{

echo $i==$k?"[".$i."]":"[".$i."]";

}

}

else

{

for($i=1;$i<=$page_count;$i++)

{

echo $i==$k?"[".$i."]":"[".$i."]";

}

}

echo "

";

}

else

{

echo "

~~~~~ 沒有數據~~~~~

";

}

?>

在index1.php中,將分頁顯示的功能抽取出來,形成一個單獨的文件index2.php。然後在需要的時候使用一個include("index2.php")語句包含進來,調用index2.php程序中定義的showonepage($rs,$page,$pagesize)函數就行了。

其中for循環中的控制稍為複雜點。目的是為了使顯示的數字保持在十個,並隨數字的變化而適當調整。

下面是index2.php的源代碼:

function showonepage($rs,$page,$pagesize)

{

//計算當前頁的首記錄位置

$offset=$pagesize*($page - 1);

//讀取指定記錄數

mysql_data_seek($rs,$offset);

?>

標題

時間

//設置初始指針為1

$v=1;

//如果有讀取到數據,就填充到表格中

while ($myrow = mysql_fetch_array($rs)&&$v<=$pagesize);

{

?>

=$myrow["name"]?>=$myrow["time"]?>

$v++;

}

echo "

";

}

?>

在此頁面中,只是簡單的定義了一個php函數showonepage($page,$pagesize),傳入由index1.php定義的兩個參數$page,$pagesize,實現數據的處理。

這裏主要采用的是mysql_data_seek()函數來實現記錄指針的定位,直接從結果集中提取數據(這個結果集是在最初連接數據庫時一次提取的)。這樣就可以避開每次提取數據時都要重新從數據庫中讀取,在大型的網絡數據庫多用戶使用中有著重要的意義,既可以減少對數據庫的訪問量,又可以節省網絡資源,提高訪問速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值