Bagaimana untuk melaksanakan fungsi paging
Dalam bab sebelumnya, kami menyelesaikan pengubahsuaian halaman html paparan kandungan latar belakang Di sini kami perlu menanyakan data pangkalan data melalui pernyataan SQL dan memaparkannya dalam jadual. Fungsi paging digunakan di sini untuk dipaparkan Lagipun, nombor yang dipaparkan pada halaman pertama adalah terhad.
Paparan paging yang dipanggil bermakna set hasil dalam pangkalan data dibahagikan secara buatan kepada bahagian untuk paparan dua parameter awal diperlukan di sini:
Setiap. Bilangan halaman dipaparkan: $limitNews
Dapatkan bilangan halaman semasa: $page#🎜🎜🎜 🎜 #Memandangkan bahasa komputer mula memperoleh rekod daripada 0 secara lalai
Jika nombor yang dipaparkan setiap halaman ditetapkan kepada 3, $limitNews = 3,
Kemudian halaman pertama $ halaman = 1 akan Memaparkan tiga rekod 0, 1, 2
Halaman kedua $page = 2 akan memaparkan tiga rekod 3, 4, 5
Halaman ketiga $ muka surat = 3 akan Tiga rekod 6, 7 dan 8 dipaparkan
dan seterusnya. . . . . . . . .
Tetapkan parameter $limitDaripada data mana untuk mula membaca
Daripada peraturan di atas kita boleh dapatkan:
$limitDari = ($halaman - 1) * $limitNews;
akan mendapat data masing-masing bermula dari item ke-0, ke-3, dan ke-6.
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 Berapa banyak halaman yang dipaparkan secara keseluruhan#🎜 🎜##🎜🎜 #
Kini timbul persoalan lain jika terdapat 10 rekod berita dan 3 rekod dipaparkan pada setiap muka surat, bagaimana dengan bakinya?
Kita perlu menggunakan % baki untuk membuat penghakiman:
<?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 lain Halaman sebelumnya $prev, halaman seterusnya $next; 🎜#Dalam fungsi paging, selalunya terdapat klik pada "halaman sebelumnya" dan "halaman seterusnya" untuk melompat
Biar saya mula-mula bercakap tentang idea melaksanakan fungsi kod PHP: #🎜🎜 ##🎜 🎜#Halaman sebelumnya $prev ialah halaman semasa $halaman -1 Lompat ke halaman sebelumnya langkah demi langkah Apabila halaman semasa $halaman adalah halaman pertama, lompat ke hadapan ke halaman 0. Ini jelas akan berlaku. pepijat,
Di sini kita perlu memberikannya tetapan Apabila halaman semasa $halaman ialah halaman pertama, klik "Halaman Sebelumnya" untuk menetapkannya supaya dipaparkan sebagai halaman pertama dan tidak pergi ke hadapan. Terlompat.
<?php $prev = ($page - 1 <= 0 )?1:$page-1; ?>Halaman seterusnya $seterusnya ialah halaman semasa $halaman -1 Lompat ke halaman seterusnya langkah demi langkah Masalahnya ialah apabila $halaman adalah halaman terakhir, klik "Halaman Seterusnya" dan kemudian kembali. Lompat, adalah serupa dengan halaman sebelumnya, kami tetapkan untuk memaparkan halaman terakhir.
<?php $next = ($page + 1 > $countPage)?$countPage:$page+1; ?>//Halaman semasa dipaparkan apabila nombor halaman semasa lebih besar daripada jumlah nombor halaman.
<!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>Rakan boleh menambah beberapa keping data ujian ke pangkalan data
senarai
jadual untuk menguji fungsi paging. Gunakan pernyataan while untuk menggelung keluar data dalam pangkalan data dan memaparkannya dalam senarai.php fail:<?php while($rows=mysqli_fetch_array($result)):?> <tr> <td style="text-align:left; padding-left:20px;"> <input type="checkbox" name="id[]" value="<?php echo $rows["id"]?>" /> <?php echo $rows["id"]?></td> <td><input type="text" name="sort[1]" value="1" style="width:50px; text-align:center; border:1px solid #ddd; padding:7px 0;" /></td> <td width="10%"> <video width="200" height="150" controls="controls" > <source src="<?php echo $rows["video"]?>" type="video/mp4"> </video> </td> <td><?php echo $rows["title"]?></td> <td><font color="#00CC99">首页</font></td> <td><?php echo $rows["cate_name"]?></td> <td><?php echo date("Y-m-d H:i:s",$rows["time"])?></td> <td> <div class="button-group"> <a class="button border-main" href="#"><span class="icon-edit"></span>修 改</a> <a class="button border-red" href="#" onclick="return del(1,1,1)"> <span class="icon-trash-o"></span>删 除 </a> </div> </td> </tr> <?php endwhile;?>Nota: Fungsi tarikh digunakan di sini untuk menukar cap masa dan paparan Tambah masa untuk biasa.
<?php echo date("Y-m-d H:i:s",$rows["time"])?>