亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHPで簡易ニュースリリースシステムを開発する簡易ページング機(jī)能の紹介

ページング表示は、大量のデータを參照および表示する非常に一般的な方法であり、Web プログラミングで最も一般的に処理されるイベントの 1 つです。

いわゆるページング表示とは、データベース內(nèi)の結(jié)果セットが表示のために人為的にセクションに分割されることを意味します:

各ページに表示されるニュースの數(shù): $limitNews

現(xiàn)在のページ數(shù)を取得します: $page

コンピュータ言語はデフォルトで0からレコードの取得を開始するため

1ページあたりの表示數(shù)を3に設(shè)定した場(chǎng)合、$limitNews = 3,

最初のページ$page = 1 は、0、1、2 の 3 つのレコードを表示します

2 番目のページ $page = 2 は、3 つのレコード 3、4、5 を表示します

3 番目のページ $page = 3 は、3 つのレコード 6、7、8 を表示します

そしてすぐ。 。 。 。 。 。 。 。 。

どのデータから読み取りを開始するかを指定するパラメーター $limitFrom を設(shè)定します

上記のルールから取得できます:

$limitFrom = ($page - 1) * $limitNews;

は、 0、3、6 項(xiàng)目からデータの取得を開始します。


次のステップは、データベースに接続してデータを読み取ることです

以前に作成したデータベース名testとテーブル名を引き続き使用します:

<?php
$link = mysqli_connect('localhost','uesrname','password','test');

$sql = "select * from new";  //  select * from表示獲取全部字段的值

$sqlCount = "select count(*) from new";    //count(*)統(tǒng)計(jì)的是結(jié)果集的總條數(shù)
?>


を使用して、データベース內(nèi)のニュース概要を取得しますクエリステートメントによるテーブル Quantity $countNews

<?php
$retQuery = mysqli_query($link, $sqlCount);  //查詢數(shù)量sql語句

$retCount = mysqli_fetch_array($retQuery);   //獲取數(shù)量

$count = $retCount[0]?$retCount[0]:0;   //判斷獲取的新聞數(shù)量

$countNews = $count;
?>


ここで別のパラメータを指定する必要があります$countPage 合計(jì)で表示されるページ數(shù)

ここで、10 個(gè)のニュースレコードと各ページがある場(chǎng)合、別の質(zhì)問が生じます。 3 つのレコードが表示されます。殘りの 1 つはどうすればよいですか?

判斷するには % 剰余を使用する必要があります:

<?php
$countPage = $countNews%$limitNews;   //求余數(shù)獲取分頁數(shù)量能否被除盡

if(($countPage) > 0) {  //獲取的頁數(shù)有余
  $countPage = ceil($countNews/$limitNews);  
  
// ceil() 函數(shù)向上舍入為最接近的整數(shù),除不盡則取整數(shù)+1頁, 10個(gè)新聞每個(gè)頁面顯示3個(gè),成3個(gè)頁面,剩余1個(gè)單獨(dú)成1個(gè)頁面,這樣總共有4個(gè)頁面
} else {
  $countPage = $countNews/$limitNews;  //如果是9個(gè)新聞每個(gè)頁面顯示3個(gè),成3個(gè)頁面
}
?>


その他のパラメータ前のページ $prev、次のページ $next;

ページング機(jī)能では、「前のページ」をクリックすることがよくあります。 「 」をクリックし、「次のページ」をクリックしてジャンプします

まず、PHP コード関數(shù)を?qū)g裝するアイデアについて話しましょう:

前のページ $prev、現(xiàn)在のページです $page -1 前のページにステップごとにジャンプしますステップ、現(xiàn)在のページ $page が最初のページの場(chǎng)合、ページ 0 にジャンプします。これは明らかにバグを引き起こします

ここで、現(xiàn)在のページ $page が最初のページである場(chǎng)合に設(shè)定を行う必要があります。ページを移動(dòng)するには、「上へ」をクリックします。 「1 ページ」は最初のページとして表示されるように設(shè)定され、次に進(jìn)みません。

$prev = ($page - 1 <= 0 )?1:$page-1;

次のページ $next (現(xiàn)在のページ $page -1)、次のページのステップにジャンプしますステップ別、問題 $page が最後のページの場(chǎng)合、「次のページ」をクリックして戻ります

前のページと同様に、最後のページを表示するように設(shè)定します。

$next = ($page + 1 > $countPage)?$countPage:$page+1;

//現(xiàn)在のページ番號(hào)が総ページ數(shù)より大きい場(chǎng)合、現(xiàn)在のページが表示されます。

ページのコードを以下に示します:

<!DOCTYPE html>
<html>
<head>  
<meta charset=utf8">  
<title>分表頁</title>
</head>
<body>
   <div>
         <a href="?page=<?php echo $prev;?>">|上一頁</a>         
         <?php for($i=1; $i<=$countPage; $i++):?>         
         <a href="?page=<?php echo $i;?>"><?php echo $i;?></a>         
         <?php endfor;?>         
         <a href="?page=<?php echo $next;?>">|下一頁</a>
   </div>
</body>
</html>

注: 上記のコードは、for ループを使用して 1、2、3 を?qū)g裝します。 。 。 。ページ効果。

學(xué)び続ける
||
<?php $link = mysqli_connect('localhost','usermane','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("連接失敗:".mysqli_connect_error()); } $page = isset($_GET['page'])?$_GET['page']:1;//獲取當(dāng)前分頁數(shù) $limitNews = 3; //每頁顯示新聞數(shù)量 $countNews = 0; //總共有多少條新聞 $countPage = 0; //一共有多少頁數(shù) $limitFrom = ($page - 1) * $limitNews;//從第幾條數(shù)據(jù)開始讀記錄 //每頁顯示3個(gè) //page = l limit 0 //page = 2 limit 3 //page = 3 limit 6 $sql = "select * from new"; $sqlCount = "select count(*) from new"; $retQuery = mysqli_query($link, $sqlCount); //查詢數(shù)量sql語句 $retCount = mysqli_fetch_array($retQuery); //獲取數(shù)量 $count = $retCount[0]?$retCount[0]:0; //判斷獲取的新聞數(shù)量 $countNews = $count; $countPage = $countNews%$limitNews; //求余數(shù)獲取分頁數(shù)量能否被除盡 if(($countPage) > 0) { //獲取的頁數(shù)有余 $countPage = ceil($countNews/$limitNews); // ceil() 函數(shù)向上舍入為最接近的整數(shù),除不盡則取整數(shù)+1頁, 10個(gè)新聞每個(gè)頁面顯示3個(gè),成3個(gè)頁面,剩余1個(gè)成1個(gè)頁面 } else { $countPage = $countNews/$limitNews; } $prev = ($page - 1 <= 0 )?1:$page-1; //上一頁 $next = ($page + 1 > $countPage)?$countPage:$page+1; //下一頁 $result = mysqli_query($link, $sql); ?> <!DOCTYPE html> <html> <head> <meta charset=utf8"> <title>分頁</title> </head> <body> <div> <a href="?page=<?php echo $prev;?>">|上一頁</a> <?php for($i=1; $i<=$countPage; $i++):?> <a href="?page=<?php echo $i;?>"><?php echo $i;?></a> <?php endfor;?> <a href="?page=<?php echo $next;?>">|下一頁</a> </div> </body> </html>
提出するリセットコード