Page 1 of 1
Maths Calculation
Posted: Thu Mar 01, 2007 9:42 pm
by winsonlee
totalval = 171
break = 50
how can i make in such a way that when i get the above two value, i will get the below result ?
echo "1- 50";
echo "51 - 100";
echo "101 - 150";
echo "151 - 171";
and i need to store the ceiling and floor value in a variable.
what i wanted to archieve is to break a query into different pages and when a user click on 51-100 a query with result 51-100 will appear.
[/list]
Posted: Thu Mar 01, 2007 11:37 pm
by dibyendrah
Are you trying to achieve paging from the mysql result ?
If yes, please follow the following code snippet .
Code: Select all
// how many rows to show per page
$rowsPerPage = 20;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
$query = "SELECT * FROM some_tbl LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');
// print the random numbers
while($row = mysql_fetch_array($result))
{
echo $row['val'] . '<br>';
}
echo '<br>';
// how many rows we have in database
$query = "SELECT COUNT(*) AS numrows FROM some_tbl";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page "; // no need to create a link to current page
}
else
{
$nav .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
// creating previous and next link
// plus the link to go straight to
// the first and last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";
$first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Next]</a> ";
$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}
// print the navigation link
echo $first . $prev . $nav . $next . $last;
Hope this will help you.
Posted: Fri Mar 02, 2007 12:33 am
by feyd
untested
Code: Select all
$totalVal = 171;
$break = 50;
for ($left = 1, $right = $break; $left < $totalVal; $left += break, $right += break)
{
echo $left, ' - ', min($right, $totalVal), PHP_EOL;
}
Posted: Fri Mar 02, 2007 1:24 am
by dude81
Correction '$' missing at break. But great, Just four lines of code.
Code: Select all
for ($left = 1, $right = $break; $left < $totalVal; $left += break, $right += break)
Posted: Fri Mar 02, 2007 7:58 am
by feyd
Heh, oops.
