Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 682509
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T01:36:14+00:00 2026-05-14T01:36:14+00:00

I was looking at the pagination script (posted below) and found it to be

  • 0

I was looking at the pagination script (posted below) and found it to be gros,s and not very good at all especially when trying to customize it.

This is what the main page looks like:

<?php
include('config.php');
$per_page = 9;

//Calculating no of pages
$sql = "select * from messages";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$pages = ceil($count/$per_page)
?>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript" src="jquery_pagination.js"></script>

<div id="loading" ></div>
<div id="content" ></div>
<ul id="pagination">
<?php
//Pagination Numbers
for($i=1; $i<=$pages; $i++)
{
echo '<li id="'.$i.'">'.$i.'</li>';
}
?>
</ul>

The top part of the code gets the results from the mysql db and than uses this information to display the numbers in the body of this page.

I am trying to put something like this on a separate page like count_page.php and then just include it.

I guess my question is, if there is a better way of doing the above with better structure. A better way to go through the db and count the results and display the appropriate numbers. The above seems messy.

Thanks for any help or suggestions on this.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T01:36:14+00:00Added an answer on May 14, 2026 at 1:36 am

    this is very useful pagination class.
    it is simple, you’ll understand, i’m sure

    class PS_Pagination {
        var $php_self;
        var $rows_per_page = 10; //Number of records to display per page
        var $total_rows = 0; //Total number of rows returned by the query
        var $links_per_page = 5; //Number of links to display per page
        var $append = ""; //Paremeters to append to pagination links
        var $sql = "";
        var $debug = false;
        var $conn = false;
        var $page = 1;
        var $max_pages = 0;
        var $offset = 0;
    
        /**
         * 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
         * @param string $append Parameters to be appended to pagination links 
         */
    
        function PS_Pagination($connection, $sql, $rows_per_page = 10, $links_per_page = 5, $append = "") {
            $this->conn = $connection;
            $this->sql = $sql;
            $this->rows_per_page = (int)$rows_per_page;
            if (intval($links_per_page ) > 0) {
                $this->links_per_page = (int)$links_per_page;
            } else {
                $this->links_per_page = 5;
            }
            $this->append = $append;
            $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() {
            //Check for valid mysql connection
            if (! $this->conn || ! is_resource($this->conn )) {
                if ($this->debug)
                    echo "MySQL connection missing<br />";
                return false;
            }
    
            //Find total number of rows
            $all_rs = @mysql_query($this->sql );
            if (! $all_rs) {
                if ($this->debug)
                    echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error();
                return false;
            }
            $this->total_rows = mysql_num_rows($all_rs );
            @mysql_close($all_rs );
    
            //Return FALSE if no rows found
            if ($this->total_rows == 0) {
                if ($this->debug)
                    echo "Query returned zero rows.";
                return FALSE;
            }
    
            //Max number of pages
            $this->max_pages = ceil($this->total_rows / $this->rows_per_page );
            if ($this->links_per_page > $this->max_pages) {
                $this->links_per_page = $this->max_pages;
            }
    
            //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 /><br />Error Returned: " . mysql_error();
                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->total_rows == 0)
                return FALSE;
    
            if ($this->page == 1) {
                return "$tag ";
            } else {
                return '<a href="' . $this->php_self . '?page=1&' . $this->append . '">' . $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->total_rows == 0)
                return FALSE;
    
            if ($this->page == $this->max_pages) {
                return $tag;
            } else {
                return ' <a href="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '">' . $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->total_rows == 0)
                return FALSE;
    
            if ($this->page < $this->max_pages) {
                return '<a href="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '">' . $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->total_rows == 0)
                return FALSE;
    
            if ($this->page > 1) {
                return ' <a href="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '">' . $tag . '</a>';
            } else {
                return " $tag";
            }
        }
    
        /**
         * Display the page links
         *
         * @access public
         * @return string
         */
        function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') {
            if ($this->total_rows == 0)
                return FALSE;
    
            $batch = ceil($this->page / $this->links_per_page );
            $end = $batch * $this->links_per_page;
            if ($end == $this->page) {
                //$end = $end + $this->links_per_page - 1;
            //$end = $end + ceil($this->links_per_page/2);
            }
            if ($end > $this->max_pages) {
                $end = $this->max_pages;
            }
            $start = $end - $this->links_per_page + 1;
            $links = '';
    
            for($i = $start; $i <= $end; $i ++) {
                if ($i == $this->page) {
                    $links .= $prefix . " $i " . $suffix;
                } else {
                    $links .= ' ' . $prefix . '<a href="' . $this->php_self . '?page=' . $i . '&' . $this->append . '">' . $i . '</a>' . $suffix . ' ';
                }
            }
    
            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;
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am looking for a good jQuery pagination plugin to use in my aspx
I'm looking to do pagination with cancan however it's not obvious how to integrate
I am looking for a good ajax pagination tutorial that uses jQuery, PHP, and
I'm looking for a good function for implementing pagination in a PHP site. The
i looking to make a small script that will understand pagination of urls i
This is my pagination script, which I've been working on: http://pastebin.com/4mpjdWKD This is the
Looking to do a bit of refactoring... Using NHibernate I have this query currently
Looking for a perl one-liner what will find all words with the next pattern:
Looking at the Ehcahce implementation of net.sf.cache.JS107, I am trying to achieve the following
Looking for best advice on how to do this: I have an insert like

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.