2015-04-30 3 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> 

Любая помощь в определении того, как рассчитать $ last в приведенном выше коде, будет оценена. Спасибо.

+0

Я считаю, что на последней странице, то '$ last' переменная должна держать результаты num_rows , который является '$ total_records'. Для всех остальных случаев используйте '$ first + $ num_rec_per_page' –

+1

У вас нет' $ limit' или '$ page', определенных в этом скрипте (который используется в' $ first') – MasterOdin

+0

На боковой ноте - станьте знакомый с mysqli как можно скорее, он намного более новый и безопасный, чем mysql. –

ответ

0

Я нашел решение, мне нужно, если заявление:

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

Без если дело

floor(total/perPageSize) + (total % perPageSize) 
Смежные вопросы