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

PHP ネイティブ開(kāi)発ニュース ステーションのニュース リストのページネーション

前回の授業(yè)でニュース一覧の機(jī)能作成についてお話しましたが、前回の授業(yè)ではニュース一覧ページの下にページング機(jī)能を作りました!そこで今日はページング実裝の制作過(guò)程をご紹介します!

まず、php ファイル page.php を作成します。このファイルには、ページングを作成するためのコードを記述します。

最初のステップ: 同様に、データベースに接続します。

// 顯示所有的錯(cuò)誤
error_reporting(E_ALL & ~E_NOTICE  );
// 連接mysql數(shù)據(jù)庫(kù)
$link = mysqli_connect('localhost','root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 選中數(shù)據(jù)庫(kù) news為數(shù)據(jù)庫(kù)的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 設(shè)置mysql字符集 為 utf8
$link->query("set names utf8");

第 2 ステップ: ページング関數(shù)を?qū)g裝するには、どのリストのどのデータ テーブルをクエリする必要があります。ニュースをページングしているため、SQL ステートメントでニュース テーブルをチェックする必要があります

// 查詢新聞表中的數(shù)據(jù)
$sql = "select * from new where 1 "; // 查詢語(yǔ)句
$sql_count =  "select count(*) as amount from new where 1 "; // 統(tǒng)計(jì)總記錄數(shù)
$sql .= "order by id asc";

The次のステップは、レコードの総數(shù)を取得することです:

// 獲取總記錄條數(shù)
$result_amount = mysqli_query($link, $sql_count);
$arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC);
// 總記錄條數(shù)
$amount = $arr_amount['amount'];

次に、総ページ數(shù)と総ページ番號(hào)を設(shè)定します

// 每頁(yè)的記錄條數(shù)
$page_size = 4;
// 總頁(yè)碼
$max_page = ceil( $amount / $page_size );

ページングには數(shù)式アルゴリズムがあることは誰(shuí)もが知っています。この式に基づいて前のページを計(jì)算します。ページ、次のページ、最後のページ!

// 獲取當(dāng)前頁(yè)碼
$page = intval($_GET['page']); // 獲取page值,并轉(zhuǎn)成int
if( $page <= 0 || $page > $max_page){  // 如果page值小于0,或是大于最大頁(yè)碼
    $page = 1;
}
// 上一頁(yè)
$pre_page = $page -1;
if( $pre_page < 1 ){ // 如果上一頁(yè)小于1
    $pre_page = 1;
}

// 下一頁(yè)
$next_page = $page + 1;
if( $next_page > $max_page ){ // 如果下一頁(yè)大于最大頁(yè)碼
    $next_page = $max_page;
}
// 分頁(yè)計(jì)算, 計(jì)算分頁(yè)的offset
$offset = ($page - 1 ) * $page_size;
$sql .= " limit $offset, $page_size ";

この時(shí)點(diǎn)でページング コードは完了です。次に、このページング ファイルをニュース リスト ページに導(dǎo)入します

<?php
include_once "../common/page.php";
?>

最後に、ニュース リスト ページの下のページング位置を見(jiàn)つけて、ページングを出力します

そうだね

1741.png

##OK!ページネーションが完了しました!

注: 私の場(chǎng)合は少し面倒かもしれません。Web サイトからページング クラスをダウンロードして直接呼び出すこともできます。ただし、ページング実裝の原則を知っておく必要があります~

學(xué)び続ける
||
<?php // 顯示所有的錯(cuò)誤 error_reporting(E_ALL & ~E_NOTICE ); // 連接mysql數(shù)據(jù)庫(kù) $link = mysqli_connect('localhost','root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 選中數(shù)據(jù)庫(kù) news為數(shù)據(jù)庫(kù)的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 設(shè)置mysql字符集 為 utf8 $link->query("set names utf8"); // 查詢簡(jiǎn)歷表中的用戶信息 $sql = "select * from new where 1 "; // 查詢語(yǔ)句 $sql_count = "select count(*) as amount from new where 1 "; // 統(tǒng)計(jì)總記錄數(shù) $sql .= "order by id asc"; // 獲取總記錄條數(shù) $result_amount = mysqli_query($link, $sql_count); $arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC); // 總記錄條數(shù) $amount = $arr_amount['amount']; // 每頁(yè)的記錄條數(shù) $page_size = 4; // 總頁(yè)碼 $max_page = ceil( $amount / $page_size ); // 獲取當(dāng)前頁(yè)碼 $page = intval($_GET['page']); // 獲取page值,并轉(zhuǎn)成int if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大頁(yè)碼 $page = 1; } // 上一頁(yè) $pre_page = $page -1; if( $pre_page < 1 ){ // 如果上一頁(yè)小于1 $pre_page = 1; } // 下一頁(yè) $next_page = $page + 1; if( $next_page > $max_page ){ // 如果下一頁(yè)大于最大頁(yè)碼 $next_page = $max_page; } // 分頁(yè)計(jì)算, 計(jì)算分頁(yè)的offset $offset = ($page - 1 ) * $page_size; $sql .= " limit $offset, $page_size "; ?>
提出するリセットコード