導航:首頁 > 編程語言 > 留言板分頁php

留言板分頁php

發布時間:2025-09-10 02:59:24

php,在html中怎樣實現分頁代碼:首頁、下一頁、上一頁、尾頁

在HTML中實現分頁代碼,可以採用如下方式來展示頁碼和導航按鈕。這里以一個簡單的示例來說明如何實現。

首先,我們需要確定當前頁碼和每頁顯示的記錄數。比如,假設總記錄數為$rows,每頁顯示的記錄數為$pagesize。我們使用變數$pageval來表示當前頁碼。

接下來,我們通過循環來生成頁碼。對於每一頁,如果它是當前頁,則在頁碼前加上「首頁」按鈕,否則僅顯示頁碼。具體的代碼如下:

for($i=1;$i<=$totalpage;$i++) {
if($pageval==$i) {
echo "<a href='?page=".$i."'>".$i." </a>";
} else {
echo "<a href='?page=".$i."'>".$i." </a>";
}
}

如果總記錄數超過每頁顯示的記錄數,我們需要添加上一頁和下一頁的導航按鈕。具體實現如下:

if($rows>$pagesize) {
if($pageval==1) {
echo "<a href='?page=".$pageval.">下一頁</a>";
} else {
if($pageval*$pagesize>=$rows) {
echo "<a href='?page=".$pageval.">上一頁</a>";
} else {
echo "<a href='?page=".$pageval.">上一頁</a> <a href='?page=".$pageval.">下一頁</a>";
}
}
}

最後,我們需要從資料庫中查詢當前頁的記錄,並顯示出來。假設查詢語句為$sqli,使用mysql_query執行查詢後,通過循環遍歷結果集,並顯示每條記錄的類型和內容。

$sqli="select * from tb_info limit $page,$pagesize";
$que=mysql_query($sqli);
while($row=mysql_fetch_array($que)) {
echo $row['type']."<br>". $row['content']."<br>";
}

以上就是如何在HTML中實現分頁代碼的一個簡單示例,通過合理的代碼組織,我們可以輕松實現分頁功能。

② PHP顯示很多資料庫信息,如何自動分頁呢代碼

PHP代碼如下:

/*

Author:默默
Date :2006-12-03

*/

$page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是獲取page=18中的page的值,假如不存在page,那麼頁數就是1。
$num=10; //每頁顯示10條數據

$db=mysql_connect("host","name","pass"); //創建資料庫連接
$select=mysql_select_db("db",$db); //選擇要操作的資料庫

/*
首先咱們要獲取資料庫中到底有多少數據,才能判斷具體要分多少頁,具體的公式就是
總數據數除以每頁顯示的條數,有餘進一。
也就是說10/3=3.3333=4 有餘數就要進一。
*/

$total=mysql_num_rows(mysql_query("select id from table")); //查詢數據的總數,id是資料庫中的一個自動賦值的欄位
$pagenum=ceil($total/$num); //獲得總頁數

//假如傳入的頁數參數大於總頁數,則顯示錯誤信息
If($page>$pagenum || $page == 0){
Echo "Error : Can Not Found The page .";
Exit;
}

$offset=($page-1)*$num; //獲取limit的第一個參數的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

$info=mysql_query("select name from table limit $offset,$num"); //獲取相應頁數所需要顯示的數據,name是數據里的一個欄位
While($it=mysql_fetch_array($info)){
Echo $it['name']."
";
} //顯示數據

For($i=1;$i<=$pagenum;$i++){

$show=($i!=$page)?"$i":"$i";
Echo $show." ";
}

/*顯示分頁信息,假如是當頁則顯示粗體的數字,其餘的頁數則為超連接,假如當前為第三頁則顯示如下
1 2 3 4 5 6
*/
?>

③ PHP鍒嗛〉鏄劇ず鍒朵綔璇﹁В

銆銆 鍓嶈█

銆銆鍒嗛〉鏄劇ず鏄涓縐嶉潪甯稿父瑙佺殑嫻忚堝拰鏄劇ず澶ч噺鏁版嵁鐨勬柟娉 灞炰簬web緙栫▼涓鏈甯稿勭悊鐨勪簨浠朵箣涓 瀵逛簬web緙栫▼鐨勮佹墜鏉ヨ 緙栧啓榪欑嶄唬鐮佸疄鍦ㄦ槸鍜屽懠鍚鎬竴鏍瘋嚜鐒 浣嗘槸瀵逛簬鍒濆﹁呮潵璇 甯稿父瀵硅繖涓闂棰樻懜涓嶈憲澶寸華 鍥犳ょ壒鍦版挵鍐欐ゆ枃瀵硅繖涓闂棰樿繘琛岃︾粏鐨勮茶В 鍔涙眰璁╃湅瀹岃繖綃囨枃絝犵殑鏈嬪弸鍦ㄧ湅瀹屼互鍚庡逛簬鍒嗛〉鏄劇ず鐨勫師鐞嗗拰瀹炵幇鏂規硶鏈夋墍浜嗚В 鏈鏂囬傚悎鍒濆﹁呴槄璇 鎵鏈夌ず渚嬩唬鐮佸潎浣跨敤php緙栧啓

銆銆 鍘熺悊

銆銆鎵璋撳垎欏墊樉紺 涔熷氨鏄灝嗘暟鎹搴撲腑鐨勭粨鏋滈泦浜轟負鐨勫垎鎴愪竴孌典竴孌電殑鏉ユ樉紺 榪欓噷闇瑕佷袱涓鍒濆嬬殑鍙傛暟

銆銆姣忛〉澶氬皯鏉¤板綍($PageSize)?

銆銆褰撳墠鏄絎鍑犻〉($CurrentPageID)?

銆銆鐜板湪鍙瑕佸啀緇欐垜涓涓緇撴灉闆 鎴戝氨鍙浠ユ樉紺烘煇孌電壒瀹氱殑緇撴灉鍑烘潵

銆銆鑷充簬鍏朵粬鐨勫弬鏁 姣斿 涓婁竴欏($PReviousPageID) 涓嬩竴欏($NextPageID) 鎬婚〉鏁($numPages)絳夌瓑 閮藉彲浠ユ牴鎹鍓嶈竟榪欏嚑涓涓滆タ寰楀埌

銆銆浠MySQL鏁版嵁搴撲負渚 濡傛灉瑕佷粠琛ㄥ唴鎴鍙栨煇孌靛唴瀹 sql璇鍙ュ彲浠ョ敤 select * from table limit offset rows 鐪嬬湅涓嬮潰涓緇剆ql璇鍙 灝濊瘯涓涓嬪彂鐜板叾涓鐨勮勭巼

銆銆鍓 鏉¤板綍 select * from table limit

銆銆絎 鑷 鏉¤板綍 select * from table limit

銆銆絎 鑷 鏉¤板綍 select * from table limit

銆銆鈥︹

銆銆榪欎竴緇剆ql璇鍙ュ叾瀹炲氨鏄褰$PageSize= 鐨勬椂鍊欏彇琛ㄥ唴姣忎竴欏墊暟鎹鐨剆ql璇鍙 鎴戜滑鍙浠ユ葷粨鍑鴻繖鏍蜂竴涓妯℃澘

銆銆select * from table limit ($CurrentPageID ) * $PageSize $PageSize

銆銆鎷胯繖涓妯℃澘浠e叆瀵瑰簲鐨勫煎拰涓婅竟閭d竴緇剆ql璇鍙ュ圭収涓涓嬬湅鐪嬫槸涓嶆槸閭d箞鍥炰簨 鎼炲畾浜嗘渶閲嶈佺殑濡備綍鑾峰彇鏁版嵁鐨勯棶棰樹互鍚 鍓╀笅鐨勫氨浠呬粎鏄浼犻掑弬鏁 鏋勯犲悎閫傜殑sql璇鍙ョ劧鍚庝嬌鐢╬hp浠庢暟鎹搴撳唴鑾峰彇鏁版嵁騫舵樉紺轟簡 浠ヤ笅鎴戝皢鐢ㄥ叿浣撲唬鐮佸姞浠ヨ存槑

銆銆 綆鍗曚唬鐮

銆銆璇瘋︾粏闃呰諱互涓嬩唬鐮 鑷宸辮皟璇曡繍琛屼竴嬈 鏈濂芥妸瀹冧慨鏀逛竴嬈 鍔犱笂鑷宸辯殑鍔熻兘 姣斿傛悳緔㈢瓑絳

銆銆 <?php

銆銆// 寤虹珛鏁版嵁搴撹繛鎺

銆銆$link = mysql_connect("localhost", "mysql_user", "mysql_passWord")

銆銆or die("Could not connect: " . mysql_error());

銆銆// 鑾峰彇褰撳墠欏墊暟

銆銆if( isset($_GET['page']) ){

銆銆$page = intval( $_GET['page'] );

銆銆}

銆銆else{

銆銆$page = 1;

銆銆}

銆銆// 姣忛〉鏁伴噺

銆銆$PageSize = 10;

銆銆// 鑾峰彇鎬繪暟鎹閲

銆銆$sql = "select count(*) as amount from table";

銆銆$result = mysql_query($sql);

銆銆$row = mysql_fetch_row($result);

銆銆$amount = $row['amount'];

銆銆// 璁扮畻鎬誨叡鏈夊氬皯欏

銆銆if( $amount ){

銆銆if( $amount < $page_size ){ $page_count = 1; } //濡傛灉鎬繪暟鎹閲忓皬浜$PageSize錛岄偅涔堝彧鏈変竴欏

銆銆if( $amount % $page_size ){ //鍙栨繪暟鎹閲忛櫎浠ユ瘡欏墊暟鐨勪綑鏁

銆銆$page_count = (int)($amount / $page_size) + 1; //濡傛灉鏈変綑鏁幫紝鍒欓〉鏁扮瓑浜庢繪暟鎹閲忛櫎浠ユ瘡欏墊暟鐨勭粨鏋滃彇鏁村啀鍔犱竴

銆銆}else{

銆銆$page_count = $amount / $page_size; //濡傛灉娌℃湁浣欐暟錛屽垯欏墊暟絳変簬鎬繪暟鎹閲忛櫎浠ユ瘡欏墊暟鐨勭粨鏋

銆銆}

銆銆}

銆銆else{

銆銆$page_count = 0;

銆銆}

銆銆// 緲婚〉閾炬帴

銆銆$page_string = ''

銆銆if( $page == 1 ){

銆銆$page_string .= '絎涓欏祙涓婁竴欏祙'

銆銆}

銆銆else{

銆銆$page_string .= '<a href=?page=1>絎涓欏</a>|<a .($page-1).'>涓婁竴欏</a>|' }

銆銆if( ($page == $page_count) || ($page_count == 0) ){

銆銆$page_string .= '涓嬩竴欏祙灝鵑〉'

銆銆}

銆銆else{

銆銆$page_string .= '<a .($page+1).'>涓嬩竴欏</a>|<a .$page_count.'>灝鵑〉</a>' }

銆銆// 鑾峰彇鏁版嵁錛屼互浜岀淮鏁扮粍鏍煎紡榪斿洖緇撴灉

銆銆if( $amount ){

銆銆$sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";

銆銆$result = mysql_query($sql);

銆銆while ( $row = mysql_fetch_row($result) ){

銆銆$rowset[] = $row;

銆銆}

銆銆}else{

銆銆$rowset = array();

銆銆}

銆銆// 娌℃湁鍖呭惈鏄劇ず緇撴灉鐨勪唬鐮侊紝閭d笉鍦ㄨㄨ鴻寖鍥達紝鍙瑕佺敤foreach灝卞彲浠ュ緢綆鍗曠殑鐢ㄥ緱鍒扮殑浜岀淮鏁扮粍鏉ユ樉紺虹粨鏋

銆銆?>

銆銆4銆丱O椋庢牸浠g爜

銆銆浠ヤ笅浠g爜涓鐨勬暟鎹搴撹繛鎺ユ槸浣跨敤鐨刾ear db綾昏繘琛屽勭悊

銆銆 <?php

銆銆// FileName: Pager.class.php

銆銆// 鍒嗛〉綾伙紝榪欎釜綾諱粎浠呯敤浜庡勭悊鏁版嵁緇撴瀯錛屼笉璐熻矗澶勭悊鏄劇ず鐨勫伐浣

銆銆Class Pager

銆銆{

銆銆var $PageSize; //姣忛〉鐨勬暟閲

銆銆var $CurrentPageID; //褰撳墠鐨勯〉鏁

銆銆var $NextPageID; //涓嬩竴欏

銆銆var $PreviousPageID; //涓婁竴欏

銆銆var $numPages; //鎬婚〉鏁

銆銆var $numItems; //鎬昏板綍鏁

銆銆var $isFirstPage; //鏄鍚︾涓欏

銆銆var $isLastPage; //鏄鍚︽渶鍚庝竴欏

銆銆var $sql; //sql鏌ヨ㈣鍙

銆銆function Pager($option)

銆銆{

銆銆global $db;

銆銆$this->_setOptions($option);

銆銆// 鎬繪潯鏁

銆銆if ( !isset($this->numItems) )

銆銆{

銆銆$res = $db->query($this->sql);

銆銆$this->numItems = $res->numRows();

銆銆}

銆銆// 鎬婚〉鏁

銆銆if ( $this->numItems > 0 )

銆銆{

銆銆if ( $this->numItems < $this->PageSize ){ $this->numPages = 1; }

銆銆if ( $this->numItems % $this->PageSize )

銆銆{

銆銆$this->numPages= (int)($this->numItems / $this->PageSize) + 1;

銆銆}

銆銆else

銆銆{

銆銆$this->numPages = $this->numItems / $this->PageSize;

銆銆}

銆銆}

銆銆else

銆銆{

銆銆$this->numPages = 0;

銆銆}

銆銆switch ( $this->CurrentPageID )

銆銆{

銆銆case $this->numPages == 1:

銆銆$this->isFirstPage = true;

銆銆$this->isLastPage = true;

銆銆break;

銆銆case 1:

銆銆$this->isFirstPage = true;

銆銆$this->isLastPage = false;

銆銆break;

銆銆case $this->numPages:

銆銆$this->isFirstPage = false;

銆銆$this->isLastPage = true;

銆銆break;

銆銆default:

銆銆$this->isFirstPage = false;

銆銆$this->isLastPage = false;

銆銆}

銆銆if ( $this->numPages > 1 )

銆銆{

銆銆if ( !$this->isLastPage ) { $this->NextPageID = $this->CurrentPageID + 1; }

銆銆if ( !$this->isFirstPage ) { $this->PreviousPageID = $this->CurrentPageID - 1; }

銆銆}

銆銆return true;

銆銆}

銆銆/***

銆銆*

銆銆* 榪斿洖緇撴灉闆嗙殑鏁版嵁搴撹繛鎺

銆銆* 鍦ㄧ粨鏋滈泦姣旇緝澶х殑鏃跺欏彲浠ョ洿鎺ヤ嬌鐢ㄨ繖涓鏂規硶鑾峰緱鏁版嵁搴撹繛鎺ワ紝鐒跺悗鍦ㄧ被涔嬪栭亶鍘嗭紝榪欐牱寮閿杈冨皬

銆銆* 濡傛灉緇撴灉闆嗕笉鏄寰堝ぇ錛屽彲浠ョ洿鎺ヤ嬌鐢╣etPageData鐨勬柟寮忚幏鍙栦簩緇存暟緇勬牸寮忕殑緇撴灉

銆銆* getPageData鏂規硶涔熸槸璋冪敤鏈鏂規硶鏉ヨ幏鍙栫粨鏋滅殑

銆銆*

銆銆***/

銆銆function getDataLink()

銆銆{

銆銆if ( $this->numItems )

銆銆{

銆銆global $db;

銆銆$PageID = $this->CurrentPageID;

銆銆$from = ($PageID - 1)*$this->PageSize;

銆銆$count = $this->PageSize;

銆銆$link = $db->limitQuery($this->sql, $from, $count); //浣跨敤Pear DB::limitQuery鏂規硶淇濊瘉鏁版嵁搴撳吋瀹規

銆銆return $link;

銆銆}

銆銆else

銆銆{

銆銆return false;

銆銆}

銆銆}

銆銆/***

銆銆*

銆銆* 浠ヤ簩緇存暟緇勭殑鏍煎紡榪斿洖緇撴灉闆

銆銆*

銆銆***/

銆銆function getPageData()

銆銆{

銆銆if ( $this->numItems )

銆銆{

銆銆if ( $res = $this->getDataLink() )

銆銆{

銆銆if ( $res->numRows() )

銆銆{

銆銆while ( $row = $res->fetchRow() )

銆銆{

銆銆$result[] = $row;

銆銆}

銆銆}

銆銆else

銆銆{

銆銆$result = array();

銆銆}

銆銆return $result;

銆銆}

銆銆else

銆銆{

銆銆return false;

銆銆}

銆銆}

銆銆else

銆銆{

銆銆return false;

銆銆}

銆銆}

銆銆function _setOptions($option)

銆銆{

銆銆$allow_options = array(

銆銆'PageSize',

銆銆'CurrentPageID',

銆銆'sql',

銆銆'numItems'

銆銆);

銆銆foreach ( $option as $key => $value )

銆銆{

銆銆if ( in_array($key, $allow_options) && ($value != null) )

銆銆{

銆銆$this->$key = $value;

銆銆}

銆銆}

銆銆return true;

銆銆}

銆銆}

銆銆?>

銆銆 <?php

銆銆// FileName: test_pager.php

銆銆// 榪欐槸涓孌電畝鍗曠殑紺轟緥浠g爜錛屽墠杈圭渷鐣ヤ簡浣跨敤pear db綾誨緩絝嬫暟鎹搴撹繛鎺ョ殑浠g爜

銆銆require "Pager.class.php";

銆銆if ( isset($_GET['page']) )

銆銆{

銆銆$page = (int)$_GET['page'];

銆銆}

銆銆else

銆銆{

銆銆$page = 1;

銆銆}

銆銆$sql = "select * from table order by id";

銆銆$pager_option = array(

銆銆"sql" => $sql,

銆銆"PageSize" => 10,

銆銆"CurrentPageID" => $page

銆銆);

銆銆if ( isset($_GET['numItems']) )

銆銆{

銆銆$pager_option['numItems'] = (int)$_GET['numItems'];

銆銆}

銆銆$pager = @new Pager($pager_option);

銆銆$data = $pager->getPageData();

銆銆if ( $pager->isFirstPage )

銆銆{

銆銆$turnover = "棣栭〉|涓婁竴欏祙";

銆銆}

銆銆else

銆銆{

銆銆$turnover = "<a ?page=1&numItems=".$pager->numItems."'>棣栭〉</a>|<a ?page=".$pager->PreviousPageID."&numItems=".$pager->numItems."'>涓婁竴欏</a>|"; }

銆銆if ( $pager->isLastPage )

銆銆{

銆銆$turnover .= "涓嬩竴欏祙灝鵑〉";

銆銆}

銆銆else

銆銆{

銆銆$turnover .="<a ?page=".$pager->NextPageID."&numItems=".$pager->numItems."'>涓嬩竴欏</a>|<a ?page=".$pager->numPages."&numItems=".$pager->numItems."'>灝鵑〉</a>"; }

銆銆?>

銆銆闇瑕佽存槑鐨勫湴鏂規湁涓や釜錛

銆銆榪欎釜綾諱粎浠呭勭悊鏁版嵁錛屽苟涓嶈礋璐e勭悊鏄劇ず錛屽洜涓烘垜瑙夊緱灝嗘暟鎹鐨勫勭悊鍜岀粨鏋滅殑鏄劇ず閮芥斁鍒頒竴涓綾婚噷杈瑰疄鍦ㄦ槸鏈変簺鍕夊己銆俆w.wINgWIT鏄劇ず鐨勬椂鍊欐儏鍐靛拰瑕佹眰澶氬彉錛屼笉濡傝嚜宸辨牴鎹綾葷粰鍑虹殑緇撴灉澶勭悊錛屾洿濂界殑鏂規硶鏄鏍規嵁榪欎釜Pager綾葷戶鎵誇竴涓鑷宸辯殑瀛愮被鏉ユ樉紺轟笉鍚岀殑鍒嗛〉錛屾瘮濡傛樉紺虹敤鎴峰垎欏靛垪琛ㄥ彲浠ワ細

銆銆 <?php

銆銆Class MemberPager extends Pager

銆銆{

銆銆function showMemberList()

銆銆{

銆銆global $db;

銆銆$data = $this->getPageData();

銆銆// 鏄劇ず緇撴灉鐨勪唬鐮

銆銆// ......

銆銆}

銆銆}

銆銆/// 璋冪敤

銆銆if ( isset($_GET['page']) )

銆銆{

銆銆$page = (int)$_GET['page'];

銆銆}

銆銆else

銆銆{

銆銆$page = 1;

銆銆}

銆銆$sql = "select * from members order by id";

銆銆$pager_option = array(

銆銆"sql" => $sql,

銆銆"PageSize" => 10,

銆銆"CurrentPageID" => $page

銆銆);

銆銆if ( isset($_GET['numItems']) )

銆銆{

銆銆$pager_option['numItems'] = (int)$_GET['numItems'];

銆銆}

銆銆$pager = @new MemberPager($pager_option);

銆銆$pager->showMemberList();

銆銆?>

銆銆絎浜屼釜闇瑕佽存槑鐨勫湴鏂瑰氨鏄涓嶅悓鏁版嵁搴撶殑鍏煎規э紝鍦ㄤ笉鍚岀殑鏁版嵁搴撻噷鎴鑾蜂竴孌電粨鏋滅殑鍐欐硶鏄涓嶄竴鏍風殑銆

銆銆mysql: select * from table limit offset, rows

銆銆pgsql: select * from table limit m offset n

銆銆......

lishixin/Article/program/PHP/201311/21304

④ PHP分頁問題. 望大蝦開示

1.$_GET[page] 是你點擊 上一頁 或者 下一頁 傳遞過來的, 當你的頁面初始化的時候 也就是你沒還沒點擊上一頁 下一頁 的時候 他應該是0
2.$page.=','; 這個的意思是 $page = $page . ','; 他是用來拼寫SQL 語句的
拼寫後 你的SQL 應該是 select * from message limit 0,5; 注意看 0 和之間 有個 逗號 代表 從結果集的第一行數據 往下取5 行

3.分頁其實非常簡單 比如說你有26記錄 每5條為一頁 26條記錄能分幾頁啊 ? 當然是 6頁了...
可是計算機不知道 你就給他一個演算法
記住公式 (總的記錄條數 + 每頁的記錄數 - 1) / 每頁的記錄數
咱們用公式算一下 (26 + 5 -1) / 5 = 6
然後我們看下SQL $sql="select * from message limit $page $pagesize ";
第1頁的時候 是 limit 0,5
第2頁的時候 是 limit 5,5
第2頁的時候 是 limit 10,5
剛才也說了 limit 是從第幾行數據 往下 走 幾行 因為咱們是 5條數據一分也所以 第2個參數永遠都不用變就是5 ,第一個參數 非常好算 每頁的記錄數 * (當前頁數 - 1)
第1頁的時候 是 5*(1-1)=0
第2頁的時候 是 5*(2-1)=5
第1頁的時候 是 5*(3-1)=10

還有說的就是你的代碼 問題很嚴重 . php 5.3 版本 你這程序根本就運行不了....
$_GET['page'] 這個樣寫才標准. 不要以為PHP 單引號 和 雙引號 沒有任何差別 單引號的速度要比 雙引號 快3倍. $_GET[page] 這種寫法 5.3 以後直接就報錯了. 建議你馬上升級為5.3 或更高的版本 養成一個練好的編寫代碼習慣.

閱讀全文

與留言板分頁php相關的資料

熱點內容
離心式壓縮機最小轉速 瀏覽:957
什麼叫程序員加班賣命 瀏覽:273
共享文件夾加密碼怎麼加 瀏覽:23
一個程序員可以加班嗎 瀏覽:134
鄰近梯度演算法 瀏覽:572
linux運維創建文件夾 瀏覽:896
win7下載java 瀏覽:280
艾葉pdf 瀏覽:440
壓縮彈簧的安裝 瀏覽:307
房貸還完後到銀行解壓要多久辦完 瀏覽:734
程序員錢前途 瀏覽:521
雲伺服器維護用戶需要做什麼 瀏覽:741
郵箱為什麼顯示伺服器配置錯誤 瀏覽:469
中國趣的命令 瀏覽:897
php中sleep函數 瀏覽:657
程序員那麼可愛免費卡 瀏覽:736
javatcp多線程 瀏覽:45
深圳解壓去哪裡 瀏覽:700
ash源碼解讀 瀏覽:957
單片機喂狗嗎 瀏覽:244