使用SQL查询对获取的数据进行分页

时间:2016-07-26 作者:Salik Asad

我是php和word press的新手。我有一个问题,我正在使用sql query 在我的posts 从我的data base. 现在的问题是,我的post 我不知道如何申请pagination 在使用SQL query. 这是我在post.

<?php
global $wpdb;
// QUERY HERE TO COUNT TOTAL RECORDS FOR PAGINATION 
$total = $wpdb->get_var("SELECT COUNT(distinct hadith_no, content) FROM muslim");
$post_per_page = 10;
$page = isset( $_GET[\'cpage\'] ) ? abs( (int) $_GET[\'cpage\'] ) : 1;
$offset = ( $page * $post_per_page ) - $post_per_page;

// QUERY HERE TO GET OUR RESULTS 
$results = $wpdb->get_results("SELECT hadith_no, content FROM muslim");
// PHP FOR EACH LOOP HERE TO DISPLAY OUR RESULTS
foreach($results as $row)
 {
 echo $row->hadith_no."  ".$row->content."<br>"; 
 }
// END OUR FOR EACH LOOP
?>
// PAGINATION HERE IN NICE BOOTSTRAP STYLES
<?php 
echo \'<div class="pagination">\';
echo paginate_links( array(
\'base\' => add_query_arg( \'cpage\', \'%#%\' ),
\'format\' => \'\',
\'prev_text\' => __(\'&laquo;\'),
\'next_text\' => __(\'&raquo;\'),
\'total\' => ceil($total / $post_per_page),
\'current\' => $page,
\'type\' => \'list\'
));
echo \'</div>\';
?>
这给了我一个垂直分页的页面底部,仍然显示所有内容在一个单一的职位,而不是显示10个职位。任何能帮我使用pagination 在我的post 或者编辑此代码以便pagination.非常感谢。

1 个回复
SO网友:Salik Asad

<?php
global $wpdb;
// QUERY HERE TO COUNT TOTAL RECORDS FOR PAGINATION 
$total = $wpdb->get_var("SELECT COUNT(*) FROM (SELECT * FROM muslim LIMIT 0,431) AS a");
$post_per_page = 10;
$page = isset( $_GET[\'cpage\'] ) ? abs( (int) $_GET[\'cpage\'] ) : 1;
$offset = ( $page * $post_per_page ) - $post_per_page;

// QUERY HERE TO GET OUR RESULTS 
$results = $wpdb->get_results("SELECT hadith_no, content FROM muslim LIMIT $post_per_page OFFSET $offset");

// PHP FOR EACH LOOP HERE TO DISPLAY OUR RESULTS
foreach($results as $row)
 {
 echo $row->hadith_no."  ".$row->content."<br>"; 
 }
// END OUR FOR EACH LOOP

?>
<?php 
echo \'<div class="pagination">\';
echo paginate_links( array(
\'base\' => add_query_arg( \'cpage\', \'%#%\' ),
\'format\' => \'\',
\'prev_text\' => __(\'&laquo;\'),
\'next_text\' => __(\'&raquo;\'),
\'total\' => ceil($total / $post_per_page),
\'current\' => $page,
\'type\' => \'list\'
));
echo \'</div>\';
?>
只需根据需要编辑sql查询,这将很好地工作。

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果