ホームページ >バックエンド開発 >PHPチュートリアル >PHP ユニバーサル ページング コンポーネント

PHP ユニバーサル ページング コンポーネント

WBOY
WBOYオリジナル
2016-07-29 08:57:281046ブラウズ
/* ***************************************** * ***
* @クラス名: page
* @Parameters: $myde_total - レコードの総数
* $myde_size - 1 ページに表示されるレコード数
* * $myde_page - 現在のページ
* $myde_url - 現在のページを取得url
* @Function: ページングの実装
*/
class page {
private $myde_total; //総ページ数
private $myde_i;ページ表示、リンクを表示するページ数は 2*$show_pages+1 です。
* 如$show_pages=2那么页面上显示是[首页] [上页] 1 2 3 4 5 [下页] [尾页]
*/
private $show_pages;
public function __construct($myde_total = 1, $myde_size = 1, $myde_page = 1, $myde_url, $show_pages = 2) {
$this->myde_total = $this->numeric($myde_total);
$this->myde_size = $this-> ;numeric($myde_size);
$this->myde_page = $this->numeric($myde_page);
$this->myde_page_count = ceil($this->myde_total / $this->myde_size) ;
$this->myde_url = $myde_url;
if ($this->myde_total $this->myde_total = 0;
if ($this->myde_page $ this->myde_page = 1;
if ($this->myde_page_count $this->myde_page_count = 1;
if ($this->myde_page_count > $this->myde_page_count)
$this->myde_page = $this->myde_page_count;
$this->limit = ($this->myde_page - 1) * $this->myde_size;
$this->myde_i = $this ->myde_page - $show_pages;
$this->myde_en = $this->myde_page + $show_pages;
if ($this->myde_i < 1) {
$this->myde_en = $this->myde_en + (1 - $this->myde_i);
$this->myde_i = 1;
}
if ($this->my de_en > $this->myde_page_count) {
$this->myde_i = $this->myde_i - ($this->myde_en - $this->myde_page_count);
$this->myde_en = $ this->myde_page_count;
}
if ($this->myde_i $this->myde_i = 1;
}
//检测が数字かどうか
プライベート関数数値($num) {
if (strlen($num)) {
if (!preg_match("/^[0-9]+$/", $num)) {
$num = 1;
} else {
$num = substr($ num, 0, 11);
}
} else {
$num = 1;
}
return $num;
}
//地址换
プライベート関数 page_replace($page) {
return str_replace("{page} ", $page, $this->myde_url);
}
//首页
private function myde_home() {
if ($this->myde_page != 1) {
return "首页";
} else {
return "

首页

";
}
}
//上一页
プライベート関数 myde_prev () {
if ($this->myde_page != 1) {
return "上一页";
} else {
return "

上一页

";
}
}
//下一页
private function myde_next() {
if ($this->myde_page != $this->myde_page_count) {
return "下一页";
} else {
            return"

下一页

";
        }
    }
    //尾页
    private function myde_last() {
        if ($this->myde_page != $this->myde_page_count) {
            return "尾页";
        } else {
            return "

尾页

";
        }
    }
    //输出
    public function myde_write($id = 'page') {
        $str = "
";
        $str.=$this->myde_home();
        $str.=$this->myde_prev();
        if ($this->myde_i > 1) {
            $str.="

...

";
        }
        for ($i = $this->myde_i; $i <= $this->myde_en; $i++) {
            if ($i == $this->myde_page) {
                $str.="$i";
            } else {
                $str.="$i";
            }
        }
        if ($this->myde_en < $this->myde_page_count) {
            $str.="

...

";
        }
        $str.=$this->myde_next();
        $str.=$this->myde_last();
        $str.="

" . $this->myde_page_count .
                "
" . $this->myde_total . "条数据

";
        $str.="
";
return $str;
}
}

?>

include_once("config.php");
require_once('page.class.php'); //ページングクラス
$showrow = 3 //1ページに表示される行数
$curpage = empty($_GET['page']) ? 1 : $_GET['page']; //現在のページは数値以外の状況も処理する必要があります
$url = "?page={page}";アドレス、検索条件がある場合は="?page={page}&q=".$_GET['q']
//mysqlとリンクするコードは省略しているのでテスト時に自分で追加してください
$sql = "SELECT id, content,lastdate FROM message";
$total = mysql_num_rows(mysql_query($sql)); //レコードの総数
if (!empty($_GET['page']) && $total != 0 && $curpage > ; ceil( $total / $showrow))
$curpage = ceil($total_rows / $showrow); //現在のページ番号が最後のページ番号より大きいため、最後のページを取得します
//データを取得します
$sql 。 = " LIMIT " . ($ curpage - 1) * $showrow . ",$showrow;";
$query = mysql_query($sql);
?>



;meta name="keywords" c /> .com/jquery/css/common.css" />
padding:20px;
}
display:block;ピクセル;
を通じて を通じて を通じて を通じて を通じて' through ‐ to ‐ ‐‐‐‐‐‐ ‐ ‐ ‐ ‐ _ _ _ to 1px; -decoration:none;
#ページ a :hover{
カラー:
#ページp{
float:left; height:24px;
}
            #page p.pageRemark b{
                color:red;
            }
            #page p.pageEllipsis{
                border-style:none;
                background:none;
                padding:4px 0px;
                color:#808080;
            }
            .dates li {font-size: 14px;margin:20px 0}
            .dates li span{float:right}
       
   
   
       


           

               
               
           

       

       

           

               

教程:PHP简单漂亮的分页类


               

                   

                           
                               

  •                                
                                   
                               

  •                        
                       

                   
               

$page = 新しいページ($s howrow、$curpage、$url 2); ;div class = "足" >www.sucaihuo.com
">






$host="localhost";
$db_user="root";
$db_pass=" ";
$db_name="テスト";
$timez/上海";
$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8 ");header("コンテンツ-タイプ: text/html;

?>



上記では、PHP の一般的なページング コンポーネントを内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。