国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 後端開發(fā) PHP問(wèn)題 php分頁(yè)有幾種實(shí)作方法

php分頁(yè)有幾種實(shí)作方法

Sep 15, 2021 am 10:29 AM
php 分頁(yè)

php分頁(yè)有3種實(shí)作方法,分別是:1、透過(guò)「mysql_query」等函數(shù)將sql查詢進(jìn)行分頁(yè);2、使用ajax的方法實(shí)作分頁(yè);3、透過(guò)「function viewpage(p){ ...}”腳本實(shí)現(xiàn)分頁(yè)。

php分頁(yè)有幾種實(shí)作方法

本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

php分頁(yè)有幾種實(shí)作方法?

php實(shí)作分頁(yè)功能的3種方法

直接上程式碼,希望大家仔細(xì)閱讀。

方法一:講sql查詢進(jìn)行分頁(yè)進(jìn)行,需要呼叫幾個(gè)函數(shù),具體見腳本:
1.pager.class.php

<?php
  
  class pager {
    public $sql; //SQL查詢語(yǔ)句
    public $datanum; //查詢所有的數(shù)據(jù)總記錄數(shù)
    public $page_size; //每頁(yè)顯示記錄的條數(shù)
    protected $_errstr;
    protected $_conn;
    protected $_query_id;

    public function query($query)///這個(gè)函數(shù)有問(wèn)題,暫時(shí)可以不用
    {
    $ret = false;
    if (!empty($query)) {
      if ($this->_conn === false || !is_resource($this->_conn)) {
       warningLog(__METHOD__ . &#39;: query sql with no connection&#39;, true);
      return false;
      }
    $this->_query_id = @mysql_query($query, $this->_conn);
    if ($this->_query_id === false) {
    $this->_errstr = @mysql_error();
    $ret = false;
     } else {
    $this->_errstr = &#39;SUCCESS&#39;;
    $ret = $this->_query_id;
      }
    }
     $msg = ($ret === false) ? &#39;false&#39; : strval($ret);
     debugLog(__METHOD__.": [$msg] returned for sql query [$query]");
    return $ret;
    }
function __construct($sql,$page_size) {
      $result = mysql_query($sql);
      $datanum = mysql_num_rows($result);
      $this->sql=$sql;
      $this->datanum=$datanum;
      $this->page_size=$page_size;
    }

    //當(dāng)前頁(yè)數(shù)
    public function page_id() {
      if($_SERVER[&#39;QUERY_STRING&#39;] == ""){
        return 1;
      }elseif(substr_count($_SERVER[&#39;QUERY_STRING&#39;],"page_id=") == 0){
        return 1;
      }else{
        return intval(substr($_SERVER[&#39;QUERY_STRING&#39;],8));
      }
    }

    //剩余url值
    public function url() {
      if($_SERVER[&#39;QUERY_STRING&#39;] == ""){
        return "";
      }elseif(substr_count($_SERVER[&#39;QUERY_STRING&#39;],"page_id=") == 0){
        return "&".$_SERVER[&#39;QUERY_STRING&#39;];
      }else{
        return str_replace("page_id=".$this->page_id(),"",$_SERVER[&#39;QUERY_STRING&#39;]);
      }
    }

    //總頁(yè)數(shù)
    public function page_num() {
      if($this->datanum == 0){
        return 1;
      }else{
        return ceil($this->datanum/$this->page_size);
      }
    }
//數(shù)據(jù)庫(kù)查詢的偏移量
    public function start() {
      return ($this->page_id()-1)*$this->page_size;
    }

    //數(shù)據(jù)輸出
    public function sqlquery() {
      return $this->sql." limit ".$this->start().",".$this->page_size;
    }

    //獲取當(dāng)前文件名
    private function php_self() {
      return $_SERVER[&#39;PHP_SELF&#39;];
    }

    //上一頁(yè)
    private function pre_page() {
      if ($this->page_id() == 1) { //頁(yè)數(shù)等于1
        return "<a href=".$this->php_self()."?page_id=1".$this->url().">上一頁(yè)</a> ";
      }elseif ($this->page_id() != 1) { //頁(yè)數(shù)不等于1
        return "<a href=".$this->php_self()."?page_id=".($this->page_id()-1).$this->url().">上一頁(yè)</a> ";
      }
    }

    //顯示分頁(yè)
    private function display_page() {
      $display_page = "";
      if($this->page_num() <= 10){ //小于10頁(yè)
        for ($i=1;$i<=$this->page_num();$i++) //循環(huán)顯示出頁(yè)面
          $display_page .= "<a href=".$this->php_self()."?page_id=".$i.$this->url().">".$i."</a> ";
          return $display_page;
      }elseif($this->page_num() > 10){ //大于10頁(yè)
        if($this->page_id() <= 6){
          for ($i=1;$i<=10;$i++) //循環(huán)顯示出頁(yè)面
            $display_page .= "<a href=".$this->php_self()."?page_id=".$i.$this->url().">".$i."</a> ";
            return $display_page;
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() >= 4)){
          for ($i=$this->page_id()-5;$i<=$this->page_id()+4;$i++) //循環(huán)顯示出頁(yè)面
            $display_page .= "<a href=".$this->php_self()."?page_id=".$i.$this->url().">".$i."</a> ";
 return $display_page;
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() < 4)){
          for ($i=$this->page_num()-9;$i<=$this->page_num();$i++) //循環(huán)顯示出頁(yè)面
            $display_page .= "<a href=".$this->php_self()."?page_id=".$i.$this->url().">".$i."</a> ";
            return $display_page;
        }
      }
    }

    //下一頁(yè)
    private function next_page() {
      if ($this->page_id() < $this->page_num()) { //頁(yè)數(shù)小于總頁(yè)數(shù)
        return "<a href=".$this->php_self()."?page_id=".($this->page_id()+1).$this->url().">下一頁(yè)</a> ";
      }elseif ($this->page_id() == $this->page_num()) { //頁(yè)數(shù)等于總頁(yè)數(shù)
        return "<a href=".$this->php_self()."?page_id=".$this->page_num().$this->url().">下一頁(yè)</a> ";
      }
    }

    // 設(shè)置分頁(yè)信息
    public function set_page_info() {
      $page_info = "共".$this->datanum."條 ";
      $page_info .= "<a href=".$this->php_self()."?page_id=1".$this->url().">首頁(yè)</a> ";
      $page_info .= $this->pre_page();
      $page_info .= $this->display_page();
      $page_info .= $this->next_page();
      $page_info .= "<a href=".$this->php_self()."?page_id=".$this->page_num().$this->url().">尾頁(yè)</a> ";
      $page_info .= "第".$this->page_id()."/".$this->page_num()."頁(yè)";
      return $page_info;
    }

  }
?>

2.腳本2:

#
<?php
  //類的用法
  // 讀取分頁(yè)類
  include("pager.class.php");
  // 數(shù)據(jù)庫(kù)連接初始化
//  $db = new mysql();
  $impeach_host = &#39;10.81.43.139&#39;;
  $impeach_usr = &#39;vmtest15&#39;;
  $impeach_passwd = &#39;vmtest15&#39;;
  $impeach_name = &#39;ufeature&#39;;
  $impeach_con = mysql_connect($impeach_host, $impeach_usr, $impeach_passwd) or
    die("Can&#39;t connect ".mysql_error());
  mysql_select_db($impeach_name, $impeach_con);
  // 這是一個(gè)sql查詢語(yǔ)句,并得到查詢結(jié)果
  $sql = "select word from ufeature.spam_accuse_word_list where flag=&#39;0&#39;";
  // 分頁(yè)初始化
  $page = new pager($sql,20);
  // 20是每頁(yè)顯示的數(shù)量
  // $res_1 = mysql_query($sql) or
  //    die("Can&#39;t get result ".mysql_error());

   $result=mysql_query($page->sqlquery());
while($info = mysql_fetch_array($result,MYSQL_ASSOC)){

  // while($info = mysql_fetch_array($res_1, MYSQL_ASSOC)){
  echo $info["word"]."<br/>";
  }
  // 頁(yè)碼索引條
  echo $page->set_page_info();


?>

方法二:使用ajax的方法
1、先了解SQL語(yǔ)句中的limit用法

SELECT * FROM table …… limit 開始位置 , 操作條數(shù) (其中開始位置是從0開始的)

範(fàn)例
#取前20條記錄:SELECT * FROM table … limit?? 0 , 20
從第11條開始取20筆記錄:SELECT * FROM table … limit?? 10 ,20?
LIMIT n 等價(jià)於LIMIT 0,n。
select * from table LIMIT 5; //返回前5行, select * from table LIMIT 0,5相同?
2 、分頁(yè)原理

?所謂分頁(yè)顯示,也就是講資料庫(kù)中的結(jié)果集,一段一段顯示出來(lái)
怎麼分段,目前在第幾段(每頁(yè)有幾條,目前再第幾頁(yè))
前10筆記錄:select * from table limit 0,10
第11至20筆記錄:select * from table limit 10,10
第21至30筆記錄:select * from table limit 20,10
分頁(yè)公式:
(目前頁(yè)數(shù)- 1 )X 每頁(yè)條數(shù), 每頁(yè)條數(shù)

Select * from table limit ($Page- 1) * $PageSize, $PageSize

3、$_SERVER["REQUEST_URI"]函數(shù)
預(yù)定義伺服器變數(shù)的一種,所有$_SERVER開頭的都叫做預(yù)定於伺服器變數(shù)。
REQUEST_URI的作用是取得目前URI,也就除網(wǎng)域外後面的完整的位址路徑。
範(fàn)例:
目前頁(yè)面為:http://www.test.com/home.php?id=23&cid=22
echo $_SERVER["REQUEST_URI"]
結(jié)果為:/home .php?id=23&cid=22?
4、parse_url()解析URL函數(shù)
?parse_url() 是講URL解析成有固定鍵值的陣列的函數(shù)
範(fàn)例

$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");
print_r($ua);

結(jié)果:

Array
(
 [scheme] => http  ;協(xié)議
 [host] => hostname  ;主機(jī)域名
 [user] => username  ;用戶
 [pass] => password  ;密碼
 [path] => /path   ;路徑
 [query] => arg=value  ;取參數(shù)
 [fragment] => anchor  ;
)

5、程式碼實(shí)例
# #?這個(gè)一個(gè)留言的分頁(yè),分成3個(gè)部分,一個(gè)是資料庫(kù)設(shè)計(jì),一個(gè)是連結(jié)頁(yè)面,一個(gè)是顯示頁(yè)面。

(1)設(shè)計(jì)資料庫(kù)?設(shè)計(jì)資料庫(kù)名為bbs,有一個(gè)資料表為message,裡麵包含title,lastdate,user,content等字段,分別表示留言標(biāo)題,留言日前,留言人,留言的內(nèi)容

(2)連接頁(yè)面

<?php
$conn = @ mysql_connect("localhost", "root", "123456") or die("數(shù)據(jù)庫(kù)鏈接錯(cuò)誤");
mysql_select_db("bbs", $conn);
mysql_query("set names &#39;GBK&#39;"); //使用GBK中文編碼;
//將空格,換行轉(zhuǎn)換為HTML可解析
function htmtocode($content) {
 $content = str_replace("\n", "<br>", str_replace(" ", " ", $content)); //兩個(gè)str_replace嵌套
 return $content;
}
//$content=str_replace("&#39;","‘",$content);
 //htmlspecialchars();
 
?>

#(3)顯示頁(yè)面

<?php
 include("conn.php");
$pagesize=2; //設(shè)置每頁(yè)顯示2個(gè)記錄
$url=$_SERVER["REQUEST_URI"]; 
$url=parse_url($url);
$url=$url[path];

$numq=mysql_query("SELECT * FROM `message`");
$num = mysql_num_rows($numq);
if($_GET){
$pageval=$_GET;
$page=($pageval-1)*$pagesize;
$page.=&#39;,&#39;;
}
if($num > $pagesize){
 if($pageval<=1)$pageval=1;
 echo "共 $num 條".
 " <a href=$url?page=".($pageval-1).">上一頁(yè)</a> <a href=$url?page=".($pageval+1).">下一頁(yè)</a>";
}
$SQL="SELECT * FROM `message` limit $page $pagesize ";
 $query=mysql_query($SQL);
 
 while($row=mysql_fetch_array($query)){
?>
<table width=500 border="0" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
 <tr bgcolor="#eff3ff">
 <td>標(biāo)題:<?php echo $row[title]?></td> <td>時(shí)間:<?php echo $row[lastdate]?></td>
 </tr>
 <tr bgcolor="#eff3ff">
 <td> 用戶:<?php echo $row[user]?></td><td></td>
 </tr>
 <tr>
 <td>內(nèi)容:<?php echo htmtocode($row[content]);?></td>
 </tr>
 <br>
</table>
<?php
 }
?>

##方法3 :

<script> 
function viewpage(p){ 
if(window.XMLHttpRequest){ 
var xmlReq = new XMLHttpRequest(); 
} else if(window.ActiveXObject) { 
var xmlReq = new ActiveXObject(&#39;Microsoft.XMLHTTP&#39;); 
} 
var formData = "page="+p; 
xmlReq.onreadystatechange = function(){ 
if(xmlReq.readyState == 4){ 
document.getElementByIdx_x(&#39;content2&#39;).innerHTML = xmlReq.responseText; 
} 
} 
xmlReq.open("post", "hotel_list.php", true); 
xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
xmlReq.send(formData); 
return false; 
} 
</script>

腳本2:

header("Content-Type:text/html;charset=GB2312"); 
$pagesize=10; 
//echo $_POST[&#39;page&#39;]; 
$result = mysql_query("Select count(DISTINCT hotelname) FROM ".TBL_HOTELS); 
$myrow = mysql_fetch_array($result); 
$numrows=$myrow[0]; 

$pages=intval($numrows/$pagesize); 
if ($numrows%$pagesize) 
$pages++; 
if (isset($_POST[&#39;page&#39;])){ 
$page=intval($_POST[&#39;page&#39;]); 
} 
else{ 
//設(shè)置為第一頁(yè) 
$page=1; 
} 
$first=1; 
$prev=$page-1; 
$next=$page+1; 
$last=$pages; 
//計(jì)算記錄偏移量 
$offset=$pagesize*($page - 1); 
//讀取指定記錄數(shù) 
$result=mysql_query("select `hotelname` , count( * ) from ".TBL_HOTELS." GROUP BY `hotelname` order by id desc limit $offset,$pagesize"); 
$num = mysql_num_rows($result); 
while ($row = mysql_fetch_array($result,MYSQL_NUM)) { 
$hotelname[] = $row[0]; 
$countpeople[] = $row[1]; 
} 
for($a=0;$a<$num;$a++) 
{ 
//$result=mysql_query("select count(title) from " . TBL_Comments ." where `title`=\"".$title[$a]."\""); 
//$row = mysql_fetch_row($result); 
echo "<TABLE style=\"MARGIN-BOTTOM: 20px\" cellSpacing=0 cellPadding=0 width=100% border=0>\n"; 
echo "<TBODY>\n"; 
echo "<TR>\n"; 
echo "<TD style=\"PADDING-TOP: 5px\" vAlign=top align=left width=80>\n"; 
//rating_bar($title[$a],5); 
echo "</TD>\n"; 
echo "<TD style=\"PADDING-TOP: 5px\" align=left width=100%><A title=$hotelname[$a] style=\"FONT-SIZE: 14px\" href=#>$hotelname[$a]</A>\n"; 
echo "</TD></TR>\n"; 
echo " <TR>\n"; 
echo "<TD></TD>\n"; 
echo "<TD style=\"PADDING-LEFT: 0px\">\n"; 
echo "<IMG src=\"images/comment.gif\" border=0> 推薦人數(shù):($countpeople[$a]) |\n"; 
echo "<SPAN>平均分:<STRONG></STRONG> (".$count."票) | 評(píng)論數(shù):()</SPAN>\n"; 
echo "</TD></TR></TBODY></TABLE>\n"; 
} 
echo "<TABLE style=\"MARGIN-TOP: 30px\" cellSpacing=0 cellPadding=0 width=\"100%\""; 
echo "border=0>"; 
echo "<TBODY><TR><TD colSpan=3 height=20>"; 
echo "<p align=center>"; 
echo "<P align=left><FONT color=red>第".$page."頁(yè)/總".$pages."頁(yè) | 總".$numrows."條</FONT> | "; 
if ($page>1) echo "<a onclick=\"viewpage(".$first.")\" href=&#39;#&#39;>首頁(yè)</a> | "; 
if ($page>1) echo "<a onclick=\"viewpage(".$prev.")\" href=&#39;#&#39;>上頁(yè)</a> | "; 
if ($page<$pages) echo "<a onclick=\"viewpage(".$next.")\" href=&#39;#&#39;>下頁(yè)</a> | "; 
if ($page<$pages) echo "<a onclick=\"viewpage(".$last.")\" href=&#39;#&#39;>尾頁(yè)</a>"; 
echo "轉(zhuǎn)到第 <INPUT maxLength=3 size=3 value=1 name=goto_page> 頁(yè) <INPUT hideFocus onclick=\"viewpage(document.all.goto_page.value)\" type=button value=Go name=cmd_goto>"; 
echo "</P></p></TD></TR></TBODY></TABLE>";
#推薦學(xué)習(xí):《PHP影片教學(xué)

以上是php分頁(yè)有幾種實(shí)作方法的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

學(xué)習(xí)PHP:初學(xué)者指南 學(xué)習(xí)PHP:初學(xué)者指南 Jul 18, 2025 am 04:54 AM

易於效率,啟動(dòng)啟動(dòng)tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

編寫有效的PHP評(píng)論 編寫有效的PHP評(píng)論 Jul 18, 2025 am 04:44 AM

註釋不能馬虎是因?yàn)樗忉尨a存在的原因而非功能,例如兼容老接口或第三方限制,否則看代碼的人只能靠猜。必須加註釋的地方包括複雜的條件判斷、特殊的錯(cuò)誤處理邏輯、臨時(shí)繞過(guò)的限制。寫註釋更實(shí)用的方法是根據(jù)場(chǎng)景選擇單行註釋或塊註釋,函數(shù)、類、文件開頭用文檔塊註釋說(shuō)明參數(shù)與返回值,並保持註釋更新,對(duì)複雜邏輯可在前面加一行概括整體意圖,同時(shí)不要用註釋封存代碼而應(yīng)使用版本控制工具。

PHP設(shè)置的簡(jiǎn)單指南 PHP設(shè)置的簡(jiǎn)單指南 Jul 18, 2025 am 04:25 AM

PHP設(shè)置的關(guān)鍵在於明確安裝方式、配置php.ini、連接Web服務(wù)器及啟用必要擴(kuò)展。 1.安裝PHP:Linux用apt、Mac用Homebrew、Windows推薦XAMPP;2.配置php.ini:調(diào)整錯(cuò)誤報(bào)告、上傳限制等並重啟服務(wù)器;3.搭配Web服務(wù)器:Apache通過(guò)mod_php,Nginx使用PHP-FPM;4.安裝常用擴(kuò)展:如mysqli、json、mbstring等以支持完整功能。

有效的PHP評(píng)論 有效的PHP評(píng)論 Jul 18, 2025 am 04:33 AM

寫好PHP註釋的關(guān)鍵在於清晰、有用且簡(jiǎn)潔。 1.註釋應(yīng)說(shuō)明代碼背後的意圖而非僅描述代碼本身,如解釋複雜條件判斷的邏輯目的;2.在魔術(shù)值、舊代碼兼容、API接口等關(guān)鍵場(chǎng)景添加註釋以提升可讀性;3.避免重複代碼內(nèi)容,保持簡(jiǎn)潔具體,並使用標(biāo)準(zhǔn)格式如PHPDoc;4.註釋需與代碼同步更新,確保準(zhǔn)確性。好的註釋應(yīng)站在他人角度思考,降低理解成本,成為代碼的理解導(dǎo)航儀。

掌握PHP塊評(píng)論 掌握PHP塊評(píng)論 Jul 18, 2025 am 04:35 AM

PHPblockcommentsareusefulforwritingmulti-lineexplanations,temporarilydisablingcode,andgeneratingdocumentation.Theyshouldnotbenestedorleftunclosed.BlockcommentshelpindocumentingfunctionswithPHPDoc,whichtoolslikePhpStormuseforauto-completionanderrorche

通過(guò)評(píng)論提高可讀性 通過(guò)評(píng)論提高可讀性 Jul 18, 2025 am 04:46 AM

寫好註釋的關(guān)鍵在於說(shuō)明“為什麼”而非僅“做了什麼”,提升代碼可讀性。 1.註釋應(yīng)解釋邏輯原因,例如值選擇或處理方式背後的考量;2.對(duì)複雜邏輯使用段落式註釋,概括函數(shù)或算法的整體思路;3.定期維護(hù)註釋確保與代碼一致,避免誤導(dǎo),必要時(shí)刪除過(guò)時(shí)內(nèi)容;4.在審查代碼時(shí)同步檢查註釋,並通過(guò)文檔記錄公共邏輯以減少代碼註釋負(fù)擔(dān)。

用塊評(píng)論記錄PHP 用塊評(píng)論記錄PHP Jul 18, 2025 am 04:53 AM

寫好PHP塊註釋能提升代碼可讀性和維護(hù)性,應(yīng)包含@param、@return、@throws等信息,並說(shuō)明“為什麼”和“怎麼用”,避免無(wú)意義重複,保持與代碼同步更新,IDE可自動(dòng)識(shí)別提示。

PHP開發(fā)環(huán)境設(shè)置 PHP開發(fā)環(huán)境設(shè)置 Jul 18, 2025 am 04:55 AM

第一步選擇集成環(huán)境包XAMPP或MAMP搭建本地服務(wù)器;第二步根據(jù)項(xiàng)目需求選擇合適的PHP版本並配置多版本切換;第三步選用VSCode或PhpStorm作為編輯器並搭配Xdebug進(jìn)行調(diào)試;此外還需安裝Composer、PHP_CodeSniffer、PHPUnit等工具輔助開發(fā)。

See all articles