Jump to content

pagination - need help on passing of search query.


FutonGuy

Recommended Posts

Hi, i have been trying for days but couldn't get this sorted out. Would like some professional help here.

Basically I got a basic pagination script from google search and the script works absolutely well if i am to display the full results.

However i am using the 'SELECT...WHERE.. LIKE %$val%' and the result works well for the 1st page but not on the 2nd or 3rd page.  i had a search form to submit my value.  Some help as to where i should proceed is greatly appreciated! Cheers

Here's my coding:

 

form.php

<form action="FTsearch.php" method="post">
<table border=0 cellspace=1 cellpadding=3 bgcolor;"#353535"
align="center">
	<tr>
		<td bgcolor="#eeeeff" width="50%">
		Device Number
		</td>
		<td bgcolor="#eeeeff" width="50%">
			<INPUT type = "TEXT" name = "devicesearch">
		</td>
	</tr>
	<tr>
		<td bgcolor ="eeeeff" colspan=2 align="center">
			<INPUT Type="SUBMIT" name="submit" value="Device Search">
		</td>
	</tr>
</table>
</form>

 

FTsearch.php

$val_d = $_POST['devicesearch'];

if ($_POST['SEARCH'] = 'Device Search')
{
$sql = "SELECT *
		FROM device
		WHERE device_num LIKE '%$val_d%' or '%$val_d'";

$results1 = mysql_query($sql) or die ("Sorry no match found!".mysql_error());	

	//This checks to see if there is a page number. If not, it will set it to page 1	
		 if (!(isset($pagenum))) 
	 	{ 
		$pagenum = 1; 
		}  
		$pagenum = $_GET['pagenum'];
		echo "<center>";


		/* if(!isset($_GET['page'])) {
                $pagenum = 1;
            } else {
                $pagenum = $_GET['page'];
            } */

$numrows = mysql_num_rows($results1);		
$page_rows = 10; //This is the number of results displayed per page 
$last = ceil($numrows/$page_rows); //This tells us the page number of our last page 

	if ($pagenum < 1) //this makes sure the page number isn't below one, or more than our maximum pages 
{ 
$pagenum = 1; 
} 
elseif ($pagenum > $last) 
{ 
$pagenum = $last; 
} 

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; //This sets the range to display in our query 

$sql = "SELECT *
		FROM device
		WHERE device_num LIKE '%$val_d%' or '%$val_d' $max"; 
$results = mysql_query($sql) or die (mysql_error());

                // this is the result display
  	include "FTsearchtable.php";


echo "<br><br><center>Page $pagenum of $last<br><br>"; // This shows the user what page they are on, and the total number of pages

// First we check if we are on page one. 
//If we are then we don't need a link to the previous page or the first page so we do nothing. 
//If we aren't then we generate links to the first page, and to the previous page.
if($pagenum>1)
{

echo " <a href='{$_SERVER['PHP_SELF']}?&pagenum=1'>First</a> ";
$previous = $pagenum-1;
echo " <a href='{$_SERVER['PHP_SELF']}?&pagenum=$previous'>Previous</a> ";
} 
//This does the same as above, only checking if we are on the last page, and then generating the Next and Last links
if ($pagenum == $last) 
{
} 
else 
{
$next = $pagenum+1;
echo " <a href='{$_SERVER['PHP_SELF']}?&pagenum=$next'>Next</a> ";
echo " ";
echo " <a href='{$_SERVER['PHP_SELF']}?&pagenum=$last'>Last</a> ";
} 

}

I'd store the search criteria in a $_SESSION array. Initially you should check for the existence of the $_POST to see if the search form has been submitted, if it exists, copy this information to a session. If the $_POST doesn't exists (i.e. you have moved to page x>1) check for the $_SESSION.

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.