FutonGuy Posted December 3, 2009 Share Posted December 3, 2009 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> "; } } Link to comment https://forums.phpfreaks.com/topic/183824-pagination-need-help-on-passing-of-search-query/ Share on other sites More sharing options...
zq29 Posted December 3, 2009 Share Posted December 3, 2009 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. Link to comment https://forums.phpfreaks.com/topic/183824-pagination-need-help-on-passing-of-search-query/#findComment-970380 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.