Penomboran senarai berita tapak berita pembangunan asli PHP

Kami memberitahu anda tentang penciptaan fungsi senarai berita dalam kelas terakhir Dalam kelas terakhir, kami mempunyai fungsi paging di bawah halaman senarai berita. Jadi hari ini kami akan memperkenalkan kepada anda proses pengeluaran pelaksanaan paging!

Mula-mula kita buat fail php page.php, dalam fail ini kita letak kod untuk buat penomboran!

Langkah pertama: sama, sambung ke pangkalan data!

// 显示所有的错误
error_reporting(E_ALL & ~E_NOTICE  );
// 连接mysql数据库
$link = mysqli_connect('localhost','root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 选中数据库 news为数据库的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 设置mysql字符集 为 utf8
$link->query("set names utf8");

Langkah kedua: Untuk melaksanakan fungsi paging, kita perlu menanyakan jadual data yang mana dalam senarai yang Kami sedang mengaji berita, jadi pernyataan SQL kami mesti menyemak jadual berita

// 查询新闻表中的数据
$sql = "select * from new where 1 "; // 查询语句
$sql_count =  "select count(*) as amount from new where 1 "; // 统计总记录数
$sql .= "order by id asc";

Kemudian kita perlu mendapatkan jumlah rekod. :

// 获取总记录条数
$result_amount = mysqli_query($link, $sql_count);
$arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC);
// 总记录条数
$amount = $arr_amount['amount'];

Kemudian tetapkan jumlah halaman dan jumlah halaman

// 每页的记录条数
$page_size = 4;
// 总页码
$max_page = ceil( $amount / $page_size );

Semua orang tahu bahawa terdapat algoritma formula untuk paging Kami menggunakan formula ini untuk mengira halaman sebelumnya, halaman seterusnya, dan halaman terakhir!

// 获取当前页码
$page = intval($_GET['page']); // 获取page值,并转成int
if( $page <= 0 || $page > $max_page){  // 如果page值小于0,或是大于最大页码
    $page = 1;
}
// 上一页
$pre_page = $page -1;
if( $pre_page < 1 ){ // 如果上一页小于1
    $pre_page = 1;
}

// 下一页
$next_page = $page + 1;
if( $next_page > $max_page ){ // 如果下一页大于最大页码
    $next_page = $max_page;
}
// 分页计算, 计算分页的offset
$offset = ($page - 1 ) * $page_size;
$sql .= " limit $offset, $page_size ";

Kod paging kami telah selesai di sini, dan kemudian kami memperkenalkan fail paging ini pada halaman senarai berita

<?php
include_once "../common/page.php";
?>

Akhir sekali, cari kedudukan paging di bawah halaman senarai berita, dan keluarkan paging

<div class="pagelist">
<a href="new_list.php">首页</a>
<?php
if( $page > 1 ){
    ?>
    <a href="new_list.php?page=<?php echo $pre_page;?>">上一页</a>
    <?
}
if( $page < $max_page ){
    ?>
    <a href="new_list.php?page=<?php echo $next_page;?>">下一页</a>
    <?
}
?>
<a href="new_list.php?page=<?php echo $max_page;?>">末页</a>
/  总页码 <font color="red"><?php echo $max_page;?></font>页 当前页码 <font color="red"><?php echo $page;?></font>页
</div>

1741.png

OK! Penomboran telah selesai!

Nota: Saya mungkin agak menyusahkan di sini Anda juga boleh memuat turun kelas paging dari laman web dan menghubunginya terus! Tetapi anda perlu tahu prinsip pelaksanaan paging~

Meneruskan pembelajaran
||
<?php // 显示所有的错误 error_reporting(E_ALL & ~E_NOTICE ); // 连接mysql数据库 $link = mysqli_connect('localhost','root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8"); // 查询简历表中的用户信息 $sql = "select * from new where 1 "; // 查询语句 $sql_count = "select count(*) as amount from new where 1 "; // 统计总记录数 $sql .= "order by id asc"; // 获取总记录条数 $result_amount = mysqli_query($link, $sql_count); $arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC); // 总记录条数 $amount = $arr_amount['amount']; // 每页的记录条数 $page_size = 4; // 总页码 $max_page = ceil( $amount / $page_size ); // 获取当前页码 $page = intval($_GET['page']); // 获取page值,并转成int if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大页码 $page = 1; } // 上一页 $pre_page = $page -1; if( $pre_page < 1 ){ // 如果上一页小于1 $pre_page = 1; } // 下一页 $next_page = $page + 1; if( $next_page > $max_page ){ // 如果下一页大于最大页码 $next_page = $max_page; } // 分页计算, 计算分页的offset $offset = ($page - 1 ) * $page_size; $sql .= " limit $offset, $page_size "; ?>
  • Cadangan kursus
  • Muat turun perisian kursus