2015-04-30 55 views
0

我正在製作一個產品頁面,並且在我的分頁旁邊我想顯示每頁的商品數量。PHP如何在「顯示#件#件商品」中的最後一件商品計數

所以像「顯示1 - 10產品」的東西。

我想出瞭如何計算第一個項目編號,但我一直在搞清楚頁面上的最後一個項目。

因此,假設我每頁有10個項目並且總共有35個項目,第一頁將顯示「1-10」,下一頁將顯示「11-20」,並且下一個「21-30」和最後一頁將會顯示「31 - 35」。

<?php 
//connect to the database 
include_once ('includes/connect_to_mysql.php'); 
    $category = urldecode ($_GET["cat"]); // get category for the current page from the URL 
    $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]); 
    $limit = 10; 
    $startpoint = ($page * $limit) - $limit; 
    $statement = "products WHERE active = 1 AND category = '$category'"; 
?> 
<header> 
    <div class="paging"> 
     Page: &nbsp; <?php 
     $sql = "SELECT * FROM products WHERE active = 1 AND category = '$category'"; 
     $rs_result = mysql_query($sql); //run the query 
     $total_records = mysql_num_rows($rs_result); //count number of records 
     $num_rec_per_page = 10; //number of records per page 
     $total_pages = ceil($total_records/$num_rec_per_page); 

     for ($i=1; $i<=$total_pages; $i++) { 
      echo '<a href="categories.php?cat='.urlencode($category).'&page='.$i.'">'.$i.'</a>&nbsp; | &nbsp;'; 
      }; 

     $first = ($page * $limit) - $limit +1; 
     $last = 'NOT SURE WHAT TO PUT HERE'; 
?> 
    </div> 
    <form action="#" > 
    <select onchange="javascript:addSort();" name="sortBy" id="sortBy"> 
     <option value="">Default</option> 
     <option value="PriceHiLo">Price (High to Low)</option> 
     <option value="PriceLoHi">Price (Low to High)</option> 
     <option value="pID">Most Recent</option> 
    </select> &nbsp; Showing <?php echo $first?> - <?php echo $last?> of <?php echo $total_records?> Product(s) 
    </form> 
</header> 

任何幫助搞清楚如何計算在上面的代碼$最後,將不勝感激。謝謝。

+0

我相信,在最後一頁中,'$ last'變量應持NUM_ROWS結果,它是'$ total_records'。對於所有其他情況,請使用'$ first + $ num_rec_per_page' –

+1

您沒有在此腳本的任何位置定義'$ limit'或'$ page'(用於'$ first') – MasterOdin

+0

在旁註中 - 成爲儘快熟悉mysqli,它比mysql更新更安全。 –

回答

0

我找到了解決辦法,我需要一個if語句:

  if ($total_records > ($page * $limit)){ 
      $last = ($page * $limit); 
      } else { 
       $last = $total_records; 
      }; 
0

沒有,如果情況

floor(total/perPageSize) + (total % perPageSize) 
相關問題