By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,670 Members | 1,462 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,670 IT Pros & Developers. It's quick & easy.

pagination error

100+
P: 232
this is my search page on which i am getting two parameters from previous page but the problem is that as soon as i click any other next pages my sql query fails as it doesnt get these two parameters
kindly help
Expand|Select|Wrap|Line Numbers
  1. <?php
  2.     session_start();   
  3.  
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8.    <title></title>
  9.    <meta name="generator" content="Microsoft FrontPage 5.0" />
  10.    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  11.    <meta name="description" content="" />
  12.    <meta name="keywords" content="" />
  13.    <meta name="author" content="" />
  14. <link rel="stylesheet" href="../include/style.css" type="text/css" />
  15. </head>
  16. <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
  17.  
  18. <?php require("../include/header.php"); ?>
  19. <?php require("../include/left.php"); ?>
  20.  
  21.  <div class="heading"> 
  22.     welcome all
  23.    </div>
  24.      <div class="text"> 
  25.     <?php
  26.     //Include the PS_Pagination class
  27.     include('../include/ps_pagination.php');
  28.  
  29.     //Connect to mysql db
  30.     $conn = mysql_connect('localhost','root','');
  31.     if(!$conn) die("Failed to connect to database!");
  32.     $status = mysql_select_db('ncpul1', $conn);
  33.     if(!$status) die("Failed to select database!");
  34. $colv=$_POST["colv"];
  35. $coln=$_POST["coln"];
  36. echo "Search result for $coln------>$colv<br>";
  37.     $sql="SELECT * FROM institute WHERE ".$coln." like '%".$colv."%' order by centrecode asc";
  38.  
  39.     /*
  40.      * Create a PS_Pagination object
  41.      * 
  42.      * $conn = MySQL connection object
  43.      * $sql = SQl Query to paginate
  44.      * 10 = Number of rows per page
  45.      * 5 = Number of links
  46.      * "param1=valu1&param2=value2" = You can append your own parameters to paginations links
  47.      */
  48.     $pager = new PS_Pagination($conn, $sql, 10, 5, "param1=valu1&param2=value2");
  49.  
  50.     /*
  51.      * Enable debugging if you want o view query errors
  52.     */
  53.     $pager->setDebug(true);
  54.  
  55.     /*
  56.      * The paginate() function returns a mysql result set
  57.      * or false if no rows are returned by the query
  58.     */
  59.     $rs = $pager->paginate();
  60.     if(!$rs) die(mysql_error());
  61.     while($row = mysql_fetch_assoc($rs)) {
  62.         echo $row['address'],"<br />\n";
  63.     }
  64.     echo "<br />\n";
  65.     echo "<br />\n";
  66.     echo"<div align='center'>";
  67.     //Display the full navigation in one go
  68.     echo $pager->renderFullNav();
  69.  
  70.     echo "<br />\n";
  71.     echo"</div>";
  72.  
  73. ?>
  74.    </div>
  75.  
  76. <?php require("../include/right.php"); ?><?php require("../include/footer.php"); ?>
  77.  
  78. </body>
  79. </html>
  80.  
this is pagination file code(ps_pagination.php)
Expand|Select|Wrap|Line Numbers
  1. <?php
  2. /**
  3.  * PHPSense Pagination Class
  4.  *
  5.  * PHP tutorials and scripts
  6.  *
  7.  * @package        PHPSense
  8.  * @author        Jatinder Singh Thind
  9.  * @copyright    Copyright (c) 2006, Jatinder Singh Thind
  10.  * @link        http://www.phpsense.com
  11.  */
  12.  
  13. // ------------------------------------------------------------------------
  14.  
  15.  
  16. class PS_Pagination {
  17.     var $php_self;
  18.     var $rows_per_page = 10; //Number of records to display per page
  19.     var $total_rows = 0; //Total number of rows returned by the query
  20.     var $links_per_page = 5; //Number of links to display per page
  21.     var $append = ""; //Paremeters to append to pagination links
  22.     var $sql = "";
  23.     var $debug = false;
  24.     var $conn = false;
  25.     var $page = 1;
  26.     var $max_pages = 0;
  27.     var $offset = 0;
  28.  
  29.     /**
  30.      * Constructor
  31.      *
  32.      * @param resource $connection Mysql connection link
  33.      * @param string $sql SQL query to paginate. Example : SELECT * FROM users
  34.      * @param integer $rows_per_page Number of records to display per page. Defaults to 10
  35.      * @param integer $links_per_page Number of links to display per page. Defaults to 5
  36.      * @param string $append Parameters to be appended to pagination links 
  37.      */
  38.  
  39.     function PS_Pagination($connection, $sql, $rows_per_page = 10, $links_per_page = 5, $append = "") {
  40.         $this->conn = $connection;
  41.         $this->sql = $sql;
  42.         $this->rows_per_page = (int)$rows_per_page;
  43.         if (intval($links_per_page ) > 0) {
  44.             $this->links_per_page = (int)$links_per_page;
  45.         } else {
  46.             $this->links_per_page = 5;
  47.         }
  48.         $this->append = $append;
  49.         $this->php_self = htmlspecialchars($_SERVER['PHP_SELF'] );
  50.         if (isset($_GET['page'] )) {
  51.             $this->page = intval($_GET['page'] );
  52.         }
  53.     }
  54.  
  55.     /**
  56.      * Executes the SQL query and initializes internal variables
  57.      *
  58.      * @access public
  59.      * @return resource
  60.      */
  61.     function paginate() {
  62.         //Check for valid mysql connection
  63.         if (! $this->conn || ! is_resource($this->conn )) {
  64.             if ($this->debug)
  65.                 echo "MySQL connection missing<br />";
  66.             return false;
  67.         }
  68.  
  69.         //Find total number of rows
  70.         $all_rs = @mysql_query($this->sql );
  71.         if (! $all_rs) {
  72.             if ($this->debug)
  73.                 echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
  74.             return false;
  75.         }
  76.         $this->total_rows = mysql_num_rows($all_rs );
  77.         @mysql_close($all_rs );
  78.  
  79.         //Return FALSE if no rows found
  80.         if ($this->total_rows == 0) {
  81.             if ($this->debug)
  82.                 echo "Query returned zero rows.";
  83.             return FALSE;
  84.         }
  85.  
  86.         //Max number of pages
  87.         $this->max_pages = ceil($this->total_rows / $this->rows_per_page );
  88.         if ($this->links_per_page > $this->max_pages) {
  89.             $this->links_per_page = $this->max_pages;
  90.         }
  91.  
  92.         //Check the page value just in case someone is trying to input an aribitrary value
  93.         if ($this->page > $this->max_pages || $this->page <= 0) {
  94.             $this->page = 1;
  95.         }
  96.  
  97.         //Calculate Offset
  98.         $this->offset = $this->rows_per_page * ($this->page - 1);
  99.  
  100.         //Fetch the required result set
  101.         $rs = @mysql_query($this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" );
  102.         if (! $rs) {
  103.             if ($this->debug)
  104.                 echo "Pagination query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
  105.             return false;
  106.         }
  107.         return $rs;
  108.     }
  109.  
  110.     /**
  111.      * Display the link to the first page
  112.      *
  113.      * @access public
  114.      * @param string $tag Text string to be displayed as the link. Defaults to 'First'
  115.      * @return string
  116.      */
  117.     function renderFirst($tag = 'First') {
  118.         if ($this->total_rows == 0)
  119.             return FALSE;
  120.  
  121.         if ($this->page == 1) {
  122.             return "$tag ";
  123.         } else {
  124.             return '<a href="' . $this->php_self . '?page=1&' . $this->append . '">' . $tag . '</a> ';
  125.         }
  126.     }
  127.  
  128.     /**
  129.      * Display the link to the last page
  130.      *
  131.      * @access public
  132.      * @param string $tag Text string to be displayed as the link. Defaults to 'Last'
  133.      * @return string
  134.      */
  135.     function renderLast($tag = 'Last') {
  136.         if ($this->total_rows == 0)
  137.             return FALSE;
  138.  
  139.         if ($this->page == $this->max_pages) {
  140.             return $tag;
  141.         } else {
  142.             return ' <a href="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '">' . $tag . '</a>';
  143.         }
  144.     }
  145.  
  146.     /**
  147.      * Display the next link
  148.      *
  149.      * @access public
  150.      * @param string $tag Text string to be displayed as the link. Defaults to '>>'
  151.      * @return string
  152.      */
  153.     function renderNext($tag = '&gt;&gt;') {
  154.         if ($this->total_rows == 0)
  155.             return FALSE;
  156.  
  157.         if ($this->page < $this->max_pages) {
  158.             return '<a href="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '">' . $tag . '</a>';
  159.         } else {
  160.             return $tag;
  161.         }
  162.     }
  163.  
  164.     /**
  165.      * Display the previous link
  166.      *
  167.      * @access public
  168.      * @param string $tag Text string to be displayed as the link. Defaults to '<<'
  169.      * @return string
  170.      */
  171.     function renderPrev($tag = '&lt;&lt;') {
  172.         if ($this->total_rows == 0)
  173.             return FALSE;
  174.  
  175.         if ($this->page > 1) {
  176.             return ' <a href="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '">' . $tag . '</a>';
  177.         } else {
  178.             return " $tag";
  179.         }
  180.     }
  181.  
  182.     /**
  183.      * Display the page links
  184.      *
  185.      * @access public
  186.      * @return string
  187.      */
  188.     function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') {
  189.         if ($this->total_rows == 0)
  190.             return FALSE;
  191.  
  192.         $batch = ceil($this->page / $this->links_per_page );
  193.         $end = $batch * $this->links_per_page;
  194.         if ($end == $this->page) {
  195.             //$end = $end + $this->links_per_page - 1;
  196.         //$end = $end + ceil($this->links_per_page/2);
  197.         }
  198.         if ($end > $this->max_pages) {
  199.             $end = $this->max_pages;
  200.         }
  201.         $start = $end - $this->links_per_page + 1;
  202.         $links = '';
  203.  
  204.         for($i = $start; $i <= $end; $i ++) {
  205.             if ($i == $this->page) {
  206.                 $links .= $prefix . " $i " . $suffix;
  207.             } else {
  208.                 $links .= ' ' . $prefix . '<a href="' . $this->php_self . '?page=' . $i . '&' . $this->append . '">' . $i . '</a>' . $suffix . ' ';
  209.             }
  210.         }
  211.  
  212.         return $links;
  213.     }
  214.  
  215.     /**
  216.      * Display full pagination navigation
  217.      *
  218.      * @access public
  219.      * @return string
  220.      */
  221.     function renderFullNav() {
  222.         return $this->renderFirst() . '&nbsp;' . $this->renderPrev() . '&nbsp;' . $this->renderNav() . '&nbsp;' . $this->renderNext() . '&nbsp;' . $this->renderLast();
  223.     }
  224.  
  225.     /**
  226.      * Set debug mode
  227.      *
  228.      * @access public
  229.      * @param bool $debug Set to TRUE to enable debug messages
  230.      * @return void
  231.      */
  232.     function setDebug($debug) {
  233.         $this->debug = $debug;
  234.     }
  235. }
  236. ?>
Nov 11 '09 #1

✓ answered by Markus

Lines 34 and 35 should really be using the GET array - modify your search form to use method="get", and modify lines 34 and 35 accordingly.

If you look at the pagination class, it allows you to pass in some arbitrary data that will be appended to the links the pagination provides - this is where you should give it the GET data (coln, colv, etc.)

Share this Question
Share on Google+
2 Replies


Markus
Expert 5K+
P: 6,050
Lines 34 and 35 should really be using the GET array - modify your search form to use method="get", and modify lines 34 and 35 accordingly.

If you look at the pagination class, it allows you to pass in some arbitrary data that will be appended to the links the pagination provides - this is where you should give it the GET data (coln, colv, etc.)
Nov 11 '09 #2

100+
P: 232
@Markus
thank you for your valuable information its working now
Nov 12 '09 #3

Post your reply

Sign in to post your reply or Sign up for a free account.