GIDForums

Go Back   GIDForums > Computer Programming Forums > MySQL / PHP Forum
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read


 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 16-Apr-2008, 22:45
lipop88 lipop88 is offline
New Member
 
Join Date: Apr 2008
Posts: 1
lipop88 is on a distinguished road

[Help] How to put Rank on pagination


Hi All,

I am new to php, just wanna study as part of the course. I would like to add rank on each row data query from database.
I try some method, but it did't work right. My way was when click on second page. The Rank start over from number 1-8, by right it should start from number 8 to 16. and page number 3 start from 17 to 25. I try to modify the code from Jatinder. But it seem like too difficult for me.
below are the code. please advice

The code shown below
this is page.php
PHP Code:

<?php
    //Include the PS_Pagination class
    include('ps_pagination.php');
 
    //Connect to mysql db
    $conn = mysql_connect('localhost','root','xxxxxx');
    mysql_select_db('games',$conn);
    $sql = 'SELECT * FROM user ORDER BY subject DESC';
    //$sql = "SELECT * FROM user where rank >= $row[rank] order by subject * 1 asc"
 
 
//while($data = mysql_fetch_array($sql)) {
 
$rank = 1;
    //Create a PS_Pagination object
    $pager = new PS_Pagination($conn,$sql,8,3);
 
    //The paginate() function returns a mysql result set 
    $rs = $pager->paginate();
     echo "<table cellpadding=10 border=1><tr><td>Rank</td><td>ID</td><td>Username</td><td>game 01 score</td></tr>";
    while($row = mysql_fetch_assoc($rs)) {
 
    $ranks = $rank++;
 
     echo "<tr>";
     echo "<td>$ranks</td>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['subject']."</td>";
echo "</tr>";
        //echo $row['email'],"<br />\n";
    }
     echo "</table>";
     echo "$page_number $links $i";
 
 
    //Display the full navigation in one go
    echo $pager->renderFullNav();
 
    //Or you can display the inidividual links
    //echo "<br />";
 
    //Display the link to first page: First
    //echo $pager->renderFirst();
 
    //Display the link to previous page: <<
    //echo $pager->renderPrev();
 
    //Display page links: 1 2 3
    //echo $pager->renderNav();
 
    //Display the link to next page: >>
    //echo $pager->renderNext();
 
    //Display the link to last page: Last
    //echo $pager->renderLast();
?>


this is ps_pagination.php from Jatinder
PHP Code:

<?php
/**
* PHPSense Pagination Class
*
* PHP tutorials and scripts
*
* @package        PHPSense
* @author        Jatinder Singh Thind
* @copyright    Copyright (c) 2006, Jatinder Singh Thind
* @link        www.phpsense.com
*/
 
// ------------------------------------------------------------------------
 
class PS_Pagination {
    var $php_self;
    var $rows_per_page; //Number of records to display per page
    var $total_rows; //Total number of rows returned by the query
    var $links_per_page; //Number of links to display per page
    var $sql;
    var $debug = false;
    var $conn;
    var $page;
    var $max_pages;
    var $offset;
 
    /**
     * Constructor
     *
     * @param resource $connection Mysql connection link
     * @param string $sql SQL query to paginate. Example : SELECT * FROM users
     * @param integer $rows_per_page Number of records to display per page. Defaults to 10
     * @param integer $links_per_page Number of links to display per page. Defaults to 5
     */
 
    function PS_Pagination($connection, $sql, $rows_per_page = 10, $links_per_page = 5) {
        $this->conn = $connection;
        $this->sql = $sql;
        $this->rows_per_page = $rows_per_page;
        $this->links_per_page = $links_per_page;
        $this->php_self = htmlspecialchars($_SERVER['PHP_SELF']);
        if(isset($_GET['page'])) {
            $this->page = intval($_GET['page']);
        }
    }
 
    /**
     * Executes the SQL query and initializes internal variables
     *
     * @access public
     * @return resource
     */
    function paginate() {
        if(!$this->conn) {
            if($this->debug) echo "MySQL connection missing<br />";
            return false;
        }
 
        $all_rs = @mysql_query($this->sql);
        if(!$all_rs) {
            if($this->debug) echo "SQL query failed. Check your query.<br />";
            return false;
        }
        $this->total_rows = mysql_num_rows($all_rs);
        @mysql_close($all_rs);
 
        $this->max_pages = ceil($this->total_rows/$this->rows_per_page);
        //Check the page value just in case someone is trying to input an aribitrary value
        if($this->page > $this->max_pages || $this->page <= 0) {
            $this->page = 1;
        }
 
        //Calculate Offset
        $this->offset = $this->rows_per_page * ($this->page-1);
 
        //Fetch the required result set
        $rs = @mysql_query($this->sql." LIMIT {$this->offset}, {$this->rows_per_page}");
        if(!$rs) {
            if($this->debug) echo "Pagination query failed. Check your query.<br />";
            return false;
        }
        return $rs;
    }
 
    /**
     * Display the link to the first page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'First'
     * @return string
     */
    function renderFirst($tag='First') {
        if($this->page == 1) {
            return $tag;
        }
        else {
            return '<a href="'.$this->php_self.'?page=1">'.$tag.'</a>';
        }
    }
 
    /**
     * Display the link to the last page
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to 'Last'
     * @return string
     */
    function renderLast($tag='Last') {
        if($this->page == $this->max_pages) {
            return $tag;
        }
        else {
            return '<a href="'.$this->php_self.'?page='.$this->max_pages.'">'.$tag.'</a>';
        }
    }
 
    /**
     * Display the next link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '>>'
     * @return string
     */
    function renderNext($tag=' &gt;&gt;') {
        if($this->page < $this->max_pages) {
            return '<a href="'.$this->php_self.'?page='.($this->page+1).'">'.$tag.'</a>';
        }
        else {
            return $tag;
        }
    }
 
    /**
     * Display the previous link
     *
     * @access public
     * @param string $tag Text string to be displayed as the link. Defaults to '<<'
     * @return string
     */
    function renderPrev($tag='&lt;&lt;') {
        if($this->page > 1) {
            return '<a href="'.$this->php_self.'?page='.($this->page-1).'">'.$tag.'</a>';
        }
        else {
            return $tag;
        }
    }
 
    /**
     * Display the page links
     *
     * @access public
     * @return string
     */
    function renderNav() {
        for($i=1;$i<=$this->max_pages;$i+=$this->links_per_page) {
            if($this->page >= $i) {
                $start = $i;
            }
        }
 
        if($this->max_pages > $this->links_per_page) {
            $end = $start+$this->links_per_page;
            if($end > $this->max_pages) $end = $this->max_pages+1;
        }
        else {
            $end = $this->max_pages;
        }
 
        $links = '';
 
        for( $i=$start ; $i<$end ; $i++) {
            if($i == $this->page) {
                $links .= " $i ";
            }
            else {
                $links .= ' <a href="'.$this->php_self.'?page='.$i.'">'.$i.'</a> ';
            }
        }
 
        return $links;
    }
 
    /**
     * Display full pagination navigation
     *
     * @access public
     * @return string
     */
    function renderFullNav() {
        return $this->renderFirst().'&nbsp;'.$this->renderPrev().'&nbsp;'.$this->renderNav().'&nbsp;'.$this->renderNext().'&nbsp;'.$this->renderLast();    
    }
 
    /**
     * Set debug mode
     *
     * @access public
     * @param bool $debug Set to TRUE to enable debug messages
     * @return void
     */
    function setDebug($debug) {
        $this->debug = $debug;
    }
}
 
?>


Please help..urgent..dateline for project submission are near
Last edited by admin II : 17-Apr-2008 at 03:09. Reason: Changed [QUOTE] to [PHP]
 

Recent GIDBlogUpdates On The All New Toyota VIOS - Part III by Nihal

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Pagination & DB search engine queries ManOnScooter MySQL / PHP Forum 0 23-Nov-2007 09:14
Page Rank vs. Google listing crystalattice Search Engine Optimization Forum 8 15-Mar-2007 03:49
User rank suggestion Blake GIDForums™ 2 06-Feb-2007 18:18
Sorting a table to give each user a rank Wowl MySQL / PHP Forum 1 23-Apr-2005 14:45
Can't Get A High Rank For My Website bobyrich Search Engine Optimization Forum 9 23-Apr-2005 12:15

Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 12:48.


vBulletin, Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.