asad_black Posted February 18, 2009 Share Posted February 18, 2009 my problem is i was create the search page in which user enter the key word then shows the record in paging form by using the following the code. actual problem is that after seraching the record when i click on the NEXT button paging shows also those records which is not match by keywords this is my site http://jugnoo.tv enter Rayed in searh textbox ?php $var = @$_GET['q'] ; $trimmed = trim($var); // database connection info $conn = mysql_connect('localhost','asad','asad') or trigger_error("SQL", E_USER_ERROR); $db = mysql_select_db('asad',$conn) or trigger_error("SQL", E_USER_ERROR); // find out how many rows are in the table $sql = "SELECT COUNT(*) FROM links"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; // number of rows to show per page $rowsperpage = 1; // find out total pages $totalpages = ceil($numrows / $rowsperpage); // get the current page or set a default if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { // cast var as int $currentpage = (int) $_GET['currentpage']; } else { // default page num $currentpage = 1; } // end if // if current page is greater than total pages... if ($currentpage > $totalpages) { // set current page to last page $currentpage = $totalpages; } // end if // if current page is less than first page... if ($currentpage < 1) { // set current page to first page $currentpage = 1; } // end if // the offset of the list, based on current page $offset = ($currentpage - 1) * $rowsperpage; // get the info from the db $sql = "SELECT * FROM links where kw like \"%$trimmed%\" LIMIT $offset, $rowsperpage"; $result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR); echo "<table border=0 cellspacing=2 cellpadding=2>"; echo "<tr>"; // while there are rows to be fetched... // echo data echo "<table border='0' cellpadding='5' cellspacing='5'>"; // while there are rows to be fetched... while ($list = mysql_fetch_assoc($result)) { // echo data { echo "<tr class=style28>"; echo "<td valign=top>". $list['text']; echo "<td valign=top><a href=\"" . $list["link"] . "\"> <img src=\"" . $list["image"] . "\" height='80' width='80' border=0 \"" . $list["text"] . "\"></a>"; //echo "<td>" . $list['kw'] . "</td>"; echo "<td valign=top>" . $list['des'] . "</td>"; echo "</tr>"; } } echo "</td>"; echo "</tr>"; echo "</table>"; /****** build the pagination links ******/ // range of num links to show $range = 3; // if not on page 1, don't show back links if ($currentpage > 1) { // show << link to go back to page 1 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'>First</a> "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'>Previous</a> "; } // end if // loop to show links to range of pages around current page for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { // if it's a valid page number... if (($x > 0) && ($x <= $totalpages)) { // if we're on current page... if ($x == $currentpage) { // 'highlight' it but don't make a link echo " [<b>$x</b>] "; // if not current page... } else { // make it a link echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; } // end else } // end if } // end for // if not on last page, show forward and last page links if ($currentpage != $totalpages) { // get next page $nextpage = $currentpage + 1; // echo forward link for next page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>Next</a> "; // echo forward link for lastpage echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>Last</a> "; } // end if /****** end build pagination links ******/ ?> Quote Link to comment https://forums.phpfreaks.com/topic/145718-solved-problem-in-paging/ Share on other sites More sharing options...
Adam Posted February 18, 2009 Share Posted February 18, 2009 Try passing "q=test" to every page.. Adam Quote Link to comment https://forums.phpfreaks.com/topic/145718-solved-problem-in-paging/#findComment-765078 Share on other sites More sharing options...
asad_black Posted February 19, 2009 Author Share Posted February 19, 2009 thankx for the help...! but i have little bit another problem..! if i search any thing from the database..! and it have only one record in the database. but why the shows paging at the bottom of the page..! paging shows only that case if any record have more than 3 times. for example if u enter keyword 'Rayed' it shows one record. but why the show paging at the bottom of the page. Quote Link to comment https://forums.phpfreaks.com/topic/145718-solved-problem-in-paging/#findComment-765871 Share on other sites More sharing options...
sasa Posted February 19, 2009 Share Posted February 19, 2009 change line $sql = "SELECT COUNT(*) FROM links"; to $sql = "SELECT COUNT(*) FROM links where kw like \"%$trimmed%\" "; Quote Link to comment https://forums.phpfreaks.com/topic/145718-solved-problem-in-paging/#findComment-766017 Share on other sites More sharing options...
asad_black Posted February 20, 2009 Author Share Posted February 20, 2009 thank you so much my problem has been solved...! Quote Link to comment https://forums.phpfreaks.com/topic/145718-solved-problem-in-paging/#findComment-766787 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.