Fungsi halaman pembangunan berita

Paging adalah fungsi yang digunakan oleh hampir setiap laman web, kerana jika terdapat banyak kandungan dan tiada paging digunakan, paparan halaman akan menjadi sangat panjang, yang akan sangat menyusahkan untuk digunakan dan mencari, jadi mari kita bercakap tentang ini sangat praktikal fungsi.

Idea umum paging:

Paging adalah untuk membahagikan semua maklumat dalam pangkalan data kepada beberapa segmen dengan nombor tetap, jadi dua data diperlukan di sini:

Bilangan item maklumat yang dipaparkan pada setiap halaman $limitPage

Dapatkan Count paging semasa $Page


Sejak bahasa komputer mula memperoleh rekod daripada 0 secara lalai

Jika anda menetapkan bilangan paparan setiap halaman kepada 5, $limitPage = 5,

yang pertama

halaman $halaman = 1 akan memaparkan 0, 1, 2 , 3 , 4 tiga rekod

Halaman kedua $halaman = 2 akan memaparkan 5 , 6 , 7 , 8 , 9 , 10 Tiga rekod

Halaman ketiga $halaman = 3 akan memaparkan 11, 12, 13, 14, 15 tiga rekod

dan seterusnya. . . . . . . . .

Tetapkan parameter $limitDari mana data untuk mula membaca

Daripada peraturan di atas, kita boleh mendapatkan:

$limitFrom = ($halaman - 1) * $limitPage;

Ia akan bermula dari 0 dan 5 masing-masing , 11 item mula mendapatkan data. . Ini dalam Situasi yang lama, jika terdapat 100 maklumat, kami diberi 11 dipaparkan pada setiap halaman, bagaimana untuk menangani baki 1 keping,

Kemudian kita perlu menggunakan % untuk membuat baki untuk menilai:

<?php
$link = mysqli_connect('localhost','uesrname','password','news');
$sql = "select * from new";  //  select * from表示获取全部字段的值
$sqlCount = "select count(*) from new";    //count(*)是计算数据总的条数
$retQuery = mysqli_query($link, $sqlCount);  //查询数量sql语句
$retCount = mysqli_fetch_array($retQuery);   //获取数量
$count = $retCount[0]?$retCount[0]:0;   //判断获取的新闻数量
$countNews = $count;
?>

Parameter lain Halaman sebelumnya $prev, halaman seterusnya $next;

Dalam fungsi paging, selalunya terdapat klik pada "halaman sebelumnya" dan "halaman seterusnya" untuk melompat

Biar saya bercakap tentang idea melaksanakan fungsi kod PHP terlebih dahulu:

Halaman Sebelumnya $prev, iaitu halaman semasa $halaman -1, melompat ke halaman sebelumnya langkah demi langkah Apabila halaman semasa $halaman adalah halaman pertama, melompat ke hadapan akan menjadi halaman 0 . Ini jelas akan menyebabkan pepijat,

Di sini kita perlu memberikannya tetapan Apabila halaman semasa $halaman adalah halaman pertama, klik "Halaman Sebelumnya" untuk menetapkannya supaya dipaparkan sebagai halaman pertama dan tidak lagi melompat ke hadapan. .


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

Halaman seterusnya $seterusnya ialah halaman semasa $halaman -1 dan melompat ke halaman seterusnya langkah demi langkah masalah ialah apabila $page adalah halaman terakhir, klik "Halaman Seterusnya" untuk melompat kembali

Sama seperti halaman sebelumnya, kami menetapkannya untuk memaparkan halaman terakhir.

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

//Apabila nombor halaman semasa lebih besar daripada jumlah halaman, halaman semasa dipaparkan.

<?php
$countPage = $countNews%$limitPage;   //求余数获取分页数量能否被除尽
if(($countPage) > 0) {  //获取的页数有余
  $countPage = ceil($countNews/$limitPage);    
// ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 100个新闻每个页面显示11个,成9个页面,剩余1个单独成1个页面,这样总共有10个页面
} else {
  $countPage = $countNews/$limitPage;  //如果是10个新闻每个页面显示2个,成5个页面
}
?>

Meneruskan pembelajaran
||
<?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;//获取当前分页数 $limitNews = 5; //每页显示新闻数量 $countNews = ""; //总共有多少条新闻 $countPage = ""; //一共有多少页数 $limitFrom = ($page - 1) * $limitPage;//从第几条数据开始读记录 //每页显示5个 //page = l limit 0 //page = 2 limit 5 //page = 3 limit 11 $sql = "select * from new"; $sqlCount = "select count(*) from new"; $retQuery = mysqli_query($link, $sqlCount); //查询数量sql语句 $retCount = mysqli_fetch_array($retQuery); //获取数量 $count = $retCount[0]?$retCount[0]:0; //判断获取的新闻数量 $countNews = $count; $countPage = $countNews%$limitPage; //求余数获取分页数量能否被除尽 if(($countPage) > 0) { //获取的页数有余 $countPage = ceil($countNews/$limitPage); // ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 100个新闻每个页面显示11个,成9个页面,剩余1个成1个页面 } else { $countPage = $countNews/$limitPage; } $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>
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!