Jump to content

Pagenation hates me ...


coolbeansdude51

Recommended Posts

I have a simple search script. Everything works except the pagenation on it.  I just need a fresh pair of eyes ... I think. Can anyone help a brother out?! Thanks in advance! 

 

Little FYI - this is a separate file from the form.  The form is sent to this page.

 

Here it is.

 

<?php
include 'db.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;
  }

// Build SQL Query  

$query = "SELECT * FROM tweets WHERE tweet LIKE \"%$trimmed%\" OR author LIKE \"%$trimmed%\""; 

$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>";
  }

// 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 <br/>";
$count = 1 + $s ;

echo "<blockquote>";
// now you can display the results returned
  while ($row= mysql_fetch_array($result)) {
  $title = $row["tweet"];
  $au = $row["author"];
  
  echo "$count.)  \"$title\" - $au <br/>" ;
  $count++;
  }
echo "</blockquote>";

$currPage = (($s/$limit) + 1);

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print " <a href=\"$PHP_SELF?s=$prevs&q=$var\"><< 
  Prev 10</a>&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 " <a href=\"$PHP_SELF?s=$news&q=$var\">Next 10 >></a>";
  }

$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<p>Showing results $b to $a of $numrows</p>";
  
?>

 

Thanks!

Link to comment
https://forums.phpfreaks.com/topic/148194-pagenation-hates-me/
Share on other sites

Two great questions.

 

You can check it out at http://startupstudent.com/twitter/search.php.

 

It takes the search query from the search form.  Finds it in the database then displays it if it was found in the database. 

 

I want it to then make it so that when there are more then 10 (which is the current limit) to pagenate the results so that I don't have to display 100 records on 1 page.

 

It will display everything correctly but when clicking the link which is echo'ed out nothing happens.  Also the link itself is incorrect.  It displays ?s=10&q=The.  It should display ?s=20&q=The.  I then try to manually change it so that I can then see if that's the only problem and it still doesn't work.  So if I changed my url to http://startupstudent.com/twitter/results.php?s=20&q=The I don't get the results starting with record # 20.

 

Does that help?

Link to comment
https://forums.phpfreaks.com/topic/148194-pagenation-hates-me/#findComment-777905
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.