Passing variables with pagination - iterating through unique id per link
Posted on
16th Feb 2014 07:03 pm by
admin
Hi everyone,
I have seen a few topics like this one. Still cant find the specific thing, so I am asking - does anyone know this?
I am trying to combine a mysql query with this code I found at php-mysql-tutorial.com.
Essentially this is the rub. The pages are working fine, but I am flumoxxed as to how to apply the $imgid to a page (viewing one image per page).
The imgid are in numerical order but do not begin at one, and there may be gaps - eg img 3, 5, 7,8 ,9 and 10 on a 6 page pagination.
I can pass the $page variable because it is a simple increment iteration, but how do I apply the changing $imgid value? so that pp1 has an imgid of 3 passed, pp2 is 5, pp3 is 7 etc. I expect it is something to do with combining a query and an array and applying it, but I'm having a brain-strain at that point.
Gratefully, here is my code stripped of excess ( I hope).
<?php
// back button depending on which gallery is parent
if(!isset($_REQUEST['random'])) {
$file= "gallery";
$varid = 0;
} else {
$file= "random";
$varid = 1;
}
echo "<fieldset><div id="back_but"><a href="gallery.php?blog=$file"> <br /></a></div>";
$url = "blog=picture&pics=picdetail&";
// how many rows to show per page
$rowsPerPage = 1;
// 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 imgid, title, year, description, thumburl, imgurl, medium, style, clientname FROM images LEFT JOIN mediums ON images.mediumid = mediums.mediumid LEFT JOIN imgstyle ON images.styleid = imgstyle.styleid LEFT JOIN clients ON images.clientid = clients.clientid WHERE imgid = $imgid".
" LIMIT $offset, $rowsPerPage";
echo $query;
$result = mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC))
{
$imgid = $row['imgid'];
$title = $row['title'];
$year = $row['year'];
$description = $row['description'];
$thumburl = $row['thumburl'];
$medium = $row['medium'];
$style = $row['style'];
$client = $row['clientname'];
}
?>
<fieldset><?php
// how many rows we have in database
$query = "SELECT COUNT(imgid) AS numrows FROM images WHERE tarot = $varid";
$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?$url&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?$url&page=$page">[Prev]</a> ";
$first = " <a href="$self?$url&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?$url&page=$page">[Next]</a> ";
$last = " <a href="$self?$url&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;
?></fieldset>
No comments posted yet
Your Answer:
Login to answer
184
30
Other forums
how to insert value
I am having file bookissueadd.php..... in which i am having tag
<td height="21&q
Warning: session_start() headers already sent error - Driving me Nuts!
I am trying my sister in laws site and I keep getting an error with my coding. I am more of a design
Save cookie to DB
I'm working on a pixel tracking script for an incentive website and I need to use an ASP script to s
Extending Exception to contain method name
I was wondering, if there's a way to extend Exception in such a way, that it would contain name of a
array_map() probably obvious mistake
The code below is part of a class to escape strings, but should also accept an array, using array_ma
Form errors in an array
I'm processing a form and putting the errors in an array. empty($errors) doesn't seem to do the tric
Displaying Multidimensional Arrays...about to put my head in a vice, PLEASE HELP
I am fairly new to PHP and MySQL and I have a problem which I have been trying to resolve for days.
Logging and nologging bulk insert
Hi,
oracle version: 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
Warning: Cannot modify header information - headers already sent by (output sta
Warning: Cannot modify header information - headers already sent by (output started at /home/praylif
SAP FICO learning materials
Hi all,
I am new to this world of SAP FICO. I have taken training on SAP FICO, but was wonderin