我在显示数据库中的数据方面遇到了一些问题。 Get_results显示数据库中的所有记录,除了添加的最后一个记录。我也有分页功能,如果我删除它,然后正确显示所有内容。
代码:
global $wpdb;
$per_page = 10;
$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;
if ($page > 1) {
$offset = $page * $per_page - $per_page;
} else {
$offset = $page;
}
$show_ad=$wpdb->get_results("SELECT * FROM advertisement WHERE active=1 ORDER BY data DESC limit $per_page offset $offset");
$total = $wpdb->get_var("SELECT count(id) from advertisement WHERE active=1 ORDER BY data DESC");
~~~~~~
<?php
echo '<div class="pagination">';
echo paginate_links(array(
'base' => add_query_arg('cpage', '%#%'),
'format' => '',
'prev_text' => __('«'),
'next_text' => __('»'),
'total' => ceil($total / $per_page),
'current' => $page
));
echo '</div>';
?>
答案 0 :(得分:1)
它没有显示最后一条记录,因为第一行以index:0
开头EI:如果您当前页面为1,但此代码中的偏移量为1
offset : 1 which mean starts at index 1 and index 0 will not be included
row 1: 0 - not
row 2: 1 - displayed
row 3: 2 - displayed
row 4: 3 - displayed
row 5: 4 - displayed
row 6: 5 - displayed
row 7: 6 - displayed
row 8: 7 - displayed
row 9: 8 - displayed
row 10: 9 - displayed
row 11: 10 - displayed
要解决这个问题,请将您的偏移量减去1
$per_page = 10;
$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;
if ($page > 1) {
$offset = $page * $per_page - $per_page;
} else {
$offset = $page;
}
$offset = $offset - 1;