Pagination Help - Please

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
webTrends
Forum Newbie
Posts: 1
Joined: Mon Sep 15, 2008 3:46 pm

Pagination Help - Please

Post by webTrends »

I am having trouble setting up pagination on my site. I can connect and query the database even return results but the next page link at the bottom of the results will not work. Right now the limit of results per page is 10 and if the search returns more than 10 results the next links will not work.

See my code below

Code: Select all

<?php
 
  // Get the search variable from URL
 
  $var = @$_GET['q'] ;
  $trimmed = trim($var); //trim whitespace from the stored variable
 
// rows to return
$limit=10; 
 
// check for an empty string and display a message.
if ($trimmed == "")
  {
  echo "<p>Please enter a search...</p>";
  exit;
  }
 
// check for a search parameter
if (!isset($var))
  {
  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  }
 
include "../config.php"; 
 
mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); 
//specify database ** EDIT REQUIRED HERE **
mysql_select_db("$database") or die("Unable to select database"); //select which database we're using
 
// Build SQL Query  
$query = "select * from $table where username like \"%$trimmed%\"  
  order by id"; // EDIT HERE and specify your table and field names for the SQL query
 
 $numresults=mysql_query($query);
 $numrows=mysql_num_rows($numresults);
 
// If we have no results, offer a google search as an alternative
 
if ($numrows == 0)
  {
  echo "<h4>Results</h4>";
  echo "<p>Sorry, your search: "" . $trimmed . "" returned zero results</p>";
 
// google
 echo "<p><a href=\"http://www.google.com/search?q=" 
  . $trimmed . "\" target=\"_blank\" title=\"Look up 
  " . $trimmed . " on Google\">Click here[/url] to try the 
  search on google</p>";
  }
 
// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }
 
// get results
  $query .= " limit $s,$limit";
  $result = mysql_query($query) or die("Couldn't execute query");
 
// display what the person searched for
echo "<p>You searched for: "" . $var . ""</p>";
 
// begin to show results set
echo "Results";
$count = 1 + $s ;
 
// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row["username"];
 
  echo "$count.)&nbsp;<a href='http://www.fashiontells.com/members/$title/$title.php'>$title[/url]
" ;
  $count++ ;
  }
 
$currPage = (($s/$limit) + 1);
 
//break before paging
  echo "
";
 
  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\"><< 
  Prev 10[/url]&nbsp&nbsp;";
  }
 
// calculate number of pages needing links
  $pages=intval($numrows/$limit);
 
// $pages now contains int of pages needed unless there is a remainder from division
 
  if ($numrows%$limit) {
  // has remainder so add one page
  $pages++;
  }
 
// check to see if last page
  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {
 
  // not last page so give NEXT link
  $news=$s+$limit;
 
  echo "&nbsp;<a href=\"http://www.fashiontells.com/members/sta ... ews&q=$var\">Next 10 >>[/url]";
  }
 
$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Showing results $b to $a of $numrows</p>";
  
?>

Also here is a link to a query so you can get a better idea about what I am trying to do.

http://www.fashiontells.com/members/sta ... ch.php?q=O

Please Help!!! Thanks in advance.
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Re: Pagination Help - Please

Post by alex.barylski »

Search the forums...this topic has been beaten to death...find a solution you like and use it it'll save you much time and frustration.
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: Pagination Help - Please

Post by califdon »

I really don't see anything in your code that would do pagination. Of course, it's terribly difficult to read your code because you didn't enclose it between [syntax=php]and[/syntax] tags; if you post code subsequently, please do so, your post will receive more serious attention.

Towards the middle of your script, you echo the word "Results", and right after that, you reference a variable, $s, but I don't see where you ever assign a value to it, so everything after that, that depends on its value, is meaningless.

Pagination, as Hockey said, has had a lot written about it, but basically it's nothing more than simple logic, expressed in php syntax. It's not like a "plug-in" that you can just copy and paste into your script. You have to decide exactly what you want it to do, then figure out what you have your php code do to accomplish it. Again, there's a wealth of information about it here and on other forums.
Post Reply