ニュース開発ページング機(jī)能
ページングは??ほぼすべての Web サイトで使用される機(jī)能です。コンテンツが多くてページングが使用されない場合、ページの表示が非常に長くなり、使用するのも見つけるのも非常に面倒になるため、これについて非常に実用的なものについて説明します。関數(shù)。
ページングの一般的な考え方:
ページングは??、データベース內(nèi)のすべての情報(bào)を一定の數(shù)でいくつかのセグメントに分割することです。そのため、ここでは 2 つのデータが必要です:
各ページに表示される情報(bào)項(xiàng)目の數(shù) $limitPage
現(xiàn)在のページング數(shù)を取得 $Page
コンピュータ言語はデフォルトで0からレコードを取得し始めるので
1ページあたりの表示數(shù)を5に設(shè)定した場合、$limitPage = 5、
次に最初のページ $page = 1 は 0, 1, 2 , 3 , 4 の 3 つのレコードを表示します
2 番目のページ $page = 2 は 5 , 6 , 7 , 8 , 9 , 10 を表示します 3 つのレコード
3 番目のページ $page = 3 は、11、12、13、14、15 の 3 つのレコード
を表示します。 。 。 。 。 。 。 。 。
データの読み取りを開始するパラメータ $limitFrom を設(shè)定します
上記のルールから、次のことが得られます:
$limitFrom = ($page - 1) * $limitPage;
それぞれ 0 番目と 5 番目から開始されます, 11件のデータ取得が開始されます。
次のステップは、データベースに接続してニュース項(xiàng)目の総數(shù)をカウントすることです:
<?php $link = mysqli_connect('localhost','uesrname','password','news'); $sql = "select * from new"; // select * from表示獲取全部字段的值 $sqlCount = "select count(*) from new"; //count(*)是計(jì)算數(shù)據(jù)總的條數(shù) $retQuery = mysqli_query($link, $sqlCount); //查詢數(shù)量sql語句 $retCount = mysqli_fetch_array($retQuery); //獲取數(shù)量 $count = $retCount[0]?$retCount[0]:0; //判斷獲取的新聞數(shù)量 $countNews = $count; ?>
次に、変數(shù) $countPage を與えて、合計(jì)で表示されるページ數(shù)を示します
これは久しぶりの狀況です。情報(bào)が 100 個(gè)ある場合、各ページに 11 個(gè)が表示されているとします。殘りの 1 個(gè)をどう処理するか、
その後、% を使用して殘りを判斷する必要があります。
<?php $countPage = $countNews%$limitPage; //求余數(shù)獲取分頁數(shù)量能否被除盡 if(($countPage) > 0) { //獲取的頁數(shù)有余 $countPage = ceil($countNews/$limitPage); // ceil() 函數(shù)向上舍入為最接近的整數(shù),除不盡則取整數(shù)+1頁, 100個(gè)新聞每個(gè)頁面顯示11個(gè),成9個(gè)頁面,剩余1個(gè)單獨(dú)成1個(gè)頁面,這樣總共有10個(gè)頁面 } else { $countPage = $countNews/$limitPage; //如果是10個(gè)新聞每個(gè)頁面顯示2個(gè),成5個(gè)頁面 } ?>
その他のパラメータ 前ページ $prev、次ページ $next;
ページング機(jī)能では、「前ページ」「次ページ」をクリックしてジャンプすることがよくあります
の考え方についてお話します。最初に PHP コード関數(shù)を?qū)g裝します。
Previous Page $prev (現(xiàn)在のページ $page -1) は、段階的に前のページにジャンプします。 現(xiàn)在のページ $page が最初のページの場合、前方にジャンプするとページ 0 になります。これは明らかにバグを引き起こします
ここで、現(xiàn)在のページ $page が最初のページである場合、「前のページ」をクリックして最初のページとして表示され、前にジャンプしないように設(shè)定する必要があります。 。
$prev = ($page - 1 <= 0 )?1:$page-1;
次のページ $next は現(xiàn)在のページ $page -1 であり、段階的に次のページにジャンプします。問題は $page が最後のページの場合、「次のページ」をクリックして戻るときです
前のページと同様に、最後のページを表示するように設(shè)定します。
$next = ($page + 1 > $countPage)?$countPage:$page+1;
//現(xiàn)在のページ番號(hào)が総ページ數(shù)より大きい場合、現(xiàn)在のページが表示されます。
りー