Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Enhancing a Simple PHP Application Paginating a List: Controller Calculating Shirts from Page Number

Leigh Maher
Leigh Maher
21,830 Points

Ok to use this calculation?

Before I watched Randy write out the formula to calculate the $start variable, I tried it myself and came up with a different approach but it seems to work fine. Any drawbacks to writing it this way?

$start = (($current_page * $products_per_page) - $products_per_page) + 1;

Instead of looking at the last one from the previous page, I've done the same calculation as you do for the $end variable and then subtract the number of products per page, and add one.

4 Answers

Hi Leigh,

Your formula and Randy's formula are mathematically equivalent. Both formulas should always produce the same $start value for any given $current_page and $products_per_page values. Which one you use would then come down to personal preference or whichever one seems more intuitive to you.

I don't know what your math level is but I can try to outline why they're equivalent using the distributive rule in mathematics. Here's a link if you're unfamiliar with it: http://www.themathpage.com/alg/distributive-rule.htm

<?php
// Randy's formula:
$start = (($current_page - 1) * $products_per_page) + 1

// If you distribute the $products_per_page variable through the parentheses using the distributive rule:
$start = ($current_page * $products_per_page - 1 * $products_per_page) + 1

// Simplifying:
$start = ($current_page * $products_per_page - $products_per_page) + 1

// This is the same as your formula.
?>
Leigh Maher
Leigh Maher
21,830 Points

That's great. Thanks Jason.

I don't see why that would not work. I would put it in the program and test it.

Leigh Maher
Leigh Maher
21,830 Points

Hi Ted, Yes, it does work fine. Just wondering if it might have potential issues done this way?

$end = $currentPage * $productsPerPage; $start = $end - $productsPerPage + 1;