Problem in paging...!

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
asad_black
Forum Newbie
Posts: 20
Joined: Wed Feb 11, 2009 1:59 am

Problem in paging...!

Post by asad_black »

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

Code: Select all

# ?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 ******/
# ?>
User avatar
susrisha
Forum Contributor
Posts: 439
Joined: Thu Aug 07, 2008 11:43 pm
Location: Hyderabad India

Re: Problem in paging...!

Post by susrisha »

Code: Select all

 
$var = @$_GET['q'] ;
 
this is your problem. in the Next page link, you wont get anything in $_GET['q']; Hence it gives out a blank and trimmed to null. Thus the query returns all the wild entries.

To solve this, you can use sessions

Code: Select all

 
 
if(isset($_GET['q']))
{
   $var = $_GET['q'];
   $_SESSION['q']= $var;
}
else
{
$var = $_SESSION['q'];
}
 
you need to put a session_start() in the first line of the page if you want to use session .
nmreddy
Forum Commoner
Posts: 25
Joined: Wed Feb 18, 2009 5:36 am

Re: Problem in paging...!

Post by nmreddy »

instead of session we can pass the search value to next page like this

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage&q=$var'>Next</a> ";
asad_black
Forum Newbie
Posts: 20
Joined: Wed Feb 11, 2009 1:59 am

Re: Problem in paging...!

Post by asad_black »

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.
Post Reply