2012-03-08 62 views
0

這裏的分頁工作正常,但除了分頁,因爲每頁的限制是3假設數據庫中共有8項,所以我想顯示「 顯示1 t0 3項8」在第一頁上,「在第二頁上顯示4到6項8」等等。請幫助當前頁面上產品的分頁計數範圍

$recordsLimit = 3; 
$page = isset($_GET['page']) ? intval($_GET['page']): 1; 
$totalProducts = countProducts($selectedCategoryId); 
$totalPages = ceil($totalProducts/$recordsLimit); 
$pageNumber = $recordsLimit * ($page - 1); 
$products = getProductsByCatId($selectedCategoryId, $pageNumber, $recordsLimit); 
     <?php if($totalProducts > $recordsLimit) : ?> 
      <div class="pagination"> 
       <span>Page <?php echo $page.' of '.$totalPages; ?></span> 
       <?php for($i=1; $i <= $totalPages; $i++) : 
         if($i == $page) { ?> 
          <strong><?php echo $i; ?></strong> 
       <?php } else { ?> 
          <a href="products.php?cat_id=<?php echo $selectedCategoryId; ?>&page=<?php echo $i; ?>"><?php echo $i; ?></a> 
       <?php } 
        endfor; ?> 
    <?php endif; ?> 

回答

1

嘗試:

echo "Showing ".($page == 1 ? 1 : ($page -1) * $recordsLimit +1)." to ".($page * $recordsLimit)." item of ".$totalProducts; 
+0

謝謝:)這個工作得很好,我在檢查你的答案前自己找到了解決方案,那就是 顯示<?php echo($ pageNumber + 1)。'至 '。 $ page * $ recordsLimit。' '。$ totalProducts。'產品; ?> 但問題出現在第3頁,它顯示「顯示8到7中的7到9 – TPSstar 2012-03-08 20:18:00

0

只需使用這樣的: <?php $firstNum = (($page-1)*$recordsLimit+1) ?> showing <?php echo $firstNum; ?> to <?php echo $firstNum+2;?> items of <?php echo $totalProducts;?>

+0

你的答案几乎是正確的但是如果他突然想改變recordsLimit呢?那麼他也必須手動將「$ firstNum + 2」更改爲別的。 – Ignas 2012-03-08 20:09:27

0

要與Tom的代碼解決這個問題,其中最後一頁有一個不正確「到」數我增加了一個偏移變量。爲此,$ recordsLimit變量必須與查詢中的「showposts」參數相匹配。 OP沒有顯示他的查詢,所以我展示了我使用的那個。

$total_results = $wp_query->found_posts; 

$recordsLimit = 10; 
$args['post_type'] = 'listings'; 
    $args['showposts'] = $recordsLimit;  
    $args['paged'] = $paged; 
    $wp_query = new WP_Query($args); 

$page = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$countoffset = ($page * $recordsLimit)-($total_results); 
$countfrom = ($page == 1 ? 1 : ($page -1) * $recordsLimit +1); 
$countto = ($page * $recordsLimit); 
if(($total_results - $countfrom) < $recordsLimit) {$countto = ($countto - $countoffset);} 
echo 'Showing '.$countfrom.' to '.$countto.' of '.$total_results.' total results';