用PHP+MySQL來做分頁的示範

來源:互聯網
上載者:User

標籤:資料   樣式   rom   定義   判斷   內容   htm   tab   Null 字元串   

用php做分頁弄懂邏輯關係其實不難,不過我在聽課的時候估計是被老師講的那些變數裡的英文單詞給聽懵了,因為有幾個變數的名字都很像,只是換了兩三個英文字母而已,有的就少幾個這樣的,聽到一半已經不知道老師講的這個變數代表的是什麼了,寫這個也只是為了複習一下,溫故而知新嘛。

英文翻譯:page:頁   per:由,依靠

//引用資料庫 下面附贈一個串連資料庫的封裝函數使用sql語句時用my_query()這個函數;include ./MySQLDB.php;    

//先設定當前選中的頁碼數                        
$pageNum = isset($_GET[‘num‘]) ? $_GET[‘num‘] : 1;           
//定義每一頁顯示的記錄數
$rowsPerPage = 5;                             
//查詢總記錄數
$sql = "select count(*) from publish";
$result = my_query($sql);
$rows = mysql_fetch_row($result);
$rowCount = $rows[0];//總記錄數
//計算總頁數
$pages = ceil($rowCount/$rowsPerPage);  //總頁數=向上取整(總記錄數/每一頁顯示的記錄數) 
//拼湊出頁碼字串
$strPage = ‘‘;      //這裡是定義一個Null 字元串,然後用串連的方式把HTML的標記和內容都串聯起來
//先拼湊出首頁
$strPage .="<a href=‘./list_father.php?num=1‘>首頁</a>";
//拼湊出上一頁
$preNum = $pageNum == 1 ? 1 : $pageNum-1;
$strPage .="<a href=‘./list_father.php?num=$preNum‘>上一頁</a>";
//顯示的初始頁         
if($pageNum <= 3){
 $startNum = 1;
}else{
 $startNum = $pageNum-2;
}
//顯示的初始頁最大值
if($startNum >=$pageNum - 4){    //要顯示的是五個頁數所以初始頁的最大值不能大於當前頁—4
 $startNum = $pageNum -4;
}
//防止頁碼出現負值
if($startNum <=1){
 $startNum = 1;
}
//確定顯示的最後一頁$endNum
$endNum = $startNum + 4;      //要顯示的是五個頁數所以最後一頁必定是初始頁+4
//防止最後一頁出界
if($endNum>=$pages){      //最後一頁大過總頁就讓他數字變總頁的數字
 $endNum = $pages;
}
for($i=$startNum;$i<=$endNum;$i++){        //拿初始頁和最後一頁迴圈比大迴圈,迴圈5次
 if($i==$pageNum){                  //當前的頁碼數被選中就給它樣式區分其他頁的頁碼數
  $strPage .= "<a href=‘./list_father.php?num=$i‘><font color=blue>$i</font></a>";    
 }else{
  $strPage .= "<a href=‘./list_father.php?num=$i‘>$i</a>";
 }
}
//拼湊出下一頁
$nextNum = $pageNum == $pages ? $pages : $pageNum+1;
$strPage .= "<a href=‘./list_father.php?num=$nextNum‘>下一頁</a>";
//拼湊出尾頁
$strPage .= "<a href=‘./list_father.php?num=$pages‘>尾頁</a>";
//分頁到此結束

 

<?php

 

function my_connect($arr){
 //接受參數
 $host = isset($arr[‘host‘]) ? $arr[‘host‘]:‘主機名稱字‘;
 $port = isset($arr[‘$port‘]) ? $arr[‘port‘]:‘連接埠號碼‘;
 $user = isset($arr[‘user‘]) ? $arr[‘user‘]:‘使用者類型‘;
 $pass = isset($arr[‘isset‘]) ? $arr[‘isset‘]:‘自己設定的密碼‘;
 $link = @ mysql_connect("$host:$port",$user,$pass);
 if(!$link){
  //資料庫連接失敗
  echo "資料庫連接失敗!<br/>";
  echo "錯誤編號:",mysql_errno(),"<br/>";
  echo "錯誤資訊:",mysql_error(),"<br/>";
  die;
 }
}
function my_query($sql){
 //先執行sql語句
 $result = mysql_query($sql);
 //判斷是否執行成功
 if(!$result){
  //輸出相關錯誤資訊
  echo "sql語句執行失敗!<br/>";
  echo "錯誤sql語句是:",$sql,"<br/>";
  echo "錯誤編號:",mysql_errno(),"<br/>";
  echo "錯誤資訊:",mysql_error(),"<br/>";
  die;
 }
 return $result;
}
//設定預設字元集
function my_charset($charset){
 $sql = "set names $charset";
 my_query($sql);
}
//設定預設資料庫
function my_database($db_name){
 $sql = "use $db_name";
 my_query($sql);
}
//串連資料庫
$arr = array(
 "user" => "使用者類型",
 "pass" => "設定的密碼"
 );
//串連資料三部曲
my_connect($arr);
my_charset(‘字元集‘);
my_database(‘要選擇的資料庫‘);

 

 

用PHP+MySQL來做分頁的示範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.