Pengenalan kepa...LOGIN

Pengenalan kepada fungsi halaman mudah untuk membangunkan sistem siaran berita ringkas dengan PHP

Paparan halaman ialah kaedah yang sangat biasa untuk menyemak imbas dan memaparkan sejumlah besar data, dan merupakan salah satu acara yang paling biasa diproses dalam pengaturcaraan web.

Paparan paging yang dipanggil bermakna set hasil dalam pangkalan data dibahagikan secara buatan kepada bahagian untuk paparan dua parameter awal diperlukan di sini:

Bilangan berita yang dipaparkan pada. setiap halaman: $limitNews

Dapatkan bilangan halaman semasa: $page

Memandangkan bahasa komputer mula mengambil rekod daripada 0 secara lalai

Jika nombor yang dipaparkan setiap halaman ditetapkan kepada 3, $limitNews = 3,

maka halaman pertama $page = 1 akan memaparkan tiga rekod 0, 1, 2

Halaman kedua $page = 2 akan memaparkan tiga rekod 3, 4, 5

pada halaman ketiga $page = 3 akan memaparkan tiga rekod 6, 7, 8

dan seterusnya. . . . . . . . .

Tetapkan parameter $limitDaripada sekeping data untuk mula membaca

Daripada peraturan di atas kita boleh dapatkan:

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

akan mendapat data masing-masing bermula dari item ke-0, ke-3 dan ke-6.


Langkah seterusnya kita perlu menyambung ke pangkalan data dan membaca data

Kami masih menggunakan ujian nama pangkalan data dan nama jadual baharu:

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

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

$sqlCount = "select count(*) from new";    //count(*)统计的是结果集的总条数
?>


Dapatkan jumlah bilangan berita dalam jadual pangkalan data melalui pernyataan pertanyaan $countNews

<?php
$retQuery = mysqli_query($link, $sqlCount);  //查询数量sql语句

$retCount = mysqli_fetch_array($retQuery);   //获取数量

$count = $retCount[0]?$retCount[0]:0;   //判断获取的新闻数量

$countNews = $count;
?>


Di sini anda perlu memberikan parameter lain $countPage jumlah keseluruhannya

Sekarang timbul masalah lain jika terdapat 10 rekod berita dan 3 rekod dipaparkan pada setiap halaman, kemudian Apa yang perlu dilakukan dengan yang selebihnya?

Kita perlu menggunakan % baki untuk membuat pertimbangan:

<?php
$countPage = $countNews%$limitNews;   //求余数获取分页数量能否被除尽

if(($countPage) > 0) {  //获取的页数有余
  $countPage = ceil($countNews/$limitNews);  
  
// ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 10个新闻每个页面显示3个,成3个页面,剩余1个单独成1个页面,这样总共有4个页面
} else {
  $countPage = $countNews/$limitNews;  //如果是9个新闻每个页面显示3个,成3个页面
}
?>


Parameter lainHalaman sebelumnya $prev, halaman seterusnya $next ;

Dalam fungsi paging, selalunya terdapat klik pada "Previous Page" dan "Next Page" untuk melompat

Izinkan saya bercakap dahulu tentang idea melaksanakan PHP fungsi kod:

Halaman sebelumnya $prev ialah halaman semasa $page -1 Lompat ke halaman sebelumnya langkah demi langkah Apabila halaman semasa $page adalah halaman pertama, lompat ke hadapan ke halaman 0. Ini jelas akan menyebabkan pepijat.

Di sini kita perlu memberikannya tetapan Apabila halaman semasa adalah halaman pertama, klik "Halaman Sebelumnya" untuk menetapkannya untuk dipaparkan sebagai halaman pertama.

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

Halaman seterusnya $next, iaitu Halaman semasa $halaman -1 melompat ke halaman seterusnya langkah demi langkah Masalahnya ialah apabila $halaman adalah halaman terakhir, klik "Halaman Seterusnya" untuk melompat kembali dengan halaman sebelumnya set Tetapkannya untuk memaparkan halaman terakhir.

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


//Nombor halaman semasa mesti lebih besar daripada Apabila jumlah halaman dipaparkan, halaman semasa dipaparkan.

Kod halaman ditunjukkan di bawah:

<!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>

Nota: Kod di atas menggunakan gelung for untuk melaksanakan 1,2,3. . . . kesan halaman.

bahagian seterusnya
<?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 = 3; //每页显示新闻数量 $countNews = 0; //总共有多少条新闻 $countPage = 0; //一共有多少页数 $limitFrom = ($page - 1) * $limitNews;//从第几条数据开始读记录 //每页显示3个 //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); //查询数量sql语句 $retCount = mysqli_fetch_array($retQuery); //获取数量 $count = $retCount[0]?$retCount[0]:0; //判断获取的新闻数量 $countNews = $count; $countPage = $countNews%$limitNews; //求余数获取分页数量能否被除尽 if(($countPage) > 0) { //获取的页数有余 $countPage = ceil($countNews/$limitNews); // ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 10个新闻每个页面显示3个,成3个页面,剩余1个成1个页面 } 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>
babperisian kursus