0

for example i have 100 files , i want to make it 10 links per page. with previous and next links by using php ...
i have some code but it is just showing the data from mysql table by using title and descripton. i want to make it links ...... how should i do.... please help me...... more appreciated for reply .....

4
Contributors
12
Replies
69
Views
3 Years
Discussion Span
Last Post by rajendher
0

thanks... it was awesome. working fine..... i need sql table example please... for the code available in this link... http://phpsense.com/2007/php-pagination-script/. because i was inserted text ....so i am getting text only. but i need links. and
First << 13 14 15 16 17 >> Last
First << 13 14 15 16 17 >> Last

two times i am getting the first and last..

Edited by rajendher

0

sorry i didn't get that. there are some other logics. please help me i need links to display....

0

Our house rules ask kindly that you show some effort yourself. While we are here to help, it's not our place to provide you with a complete solution. Could you show what you've done so far (your code) and what seems to be the problem?

0

i have replaced my database connection,rows,coloumns details in the following code....

<?php
    //Include the PS_Pagination class
    include('ps_pagination.php');

    //Connect to mysql db
    $conn = mysql_connect('myhost','myusername','mypassword');
    if(!$conn) die("Failed to connect to database!");
    $status = mysql_select_db('mydbname', $conn);
    if(!$status) die("Failed to select database!");
    $sql = 'SELECT * FROM mytable';

    /*
     * Create a PS_Pagination object
     * 
     * $conn = MySQL connection object
     * $sql = SQl Query to paginate
     * 10 = Number of rows per page
     * 5 = Number of links
     * "param1=valu1&param2=value2" = You can append your own parameters to paginations links
     */
    $pager = new PS_Pagination($conn, $sql, 10, 5, "param1=valu1&param2=value2");

    /*
     * Enable debugging if you want o view query errors
    */
    $pager->setDebug(true);

    /*
     * The paginate() function returns a mysql result set
     * or false if no rows are returned by the query
    */
    $rs = $pager->paginate();
    if(!$rs) die(mysql_error());
    while($row = mysql_fetch_assoc($rs)) {
        echo $row['msg'],"<br />\n";
    }

    //Display the full navigation in one go
    echo $pager->renderFullNav();

    echo "<br />\n";

    /*
     * Or you can display the individual links for more
     * control over HTML rendering.
     * 
    */

    //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
     * $prefix = Will be prepended to the page link (optional)
     * $suffix = Will be appended to the page link (optional)
     * 
    */
    echo $pager->renderNav('<span>', '</span>');

    //Display the link to next page: >>
    echo $pager->renderNext();

    //Display the link to last page: Last
    echo $pager->renderLast();
?>


include('ps_pagination.php');

//Connect to mysql db
$conn = mysql_connect('myhost','myusername','mypassword');
if(!$conn) die("Failed to connect to database!");
$status = mysql_select_db('mydbname', $conn);
if(!$status) die("Failed to select database!");
$sql = 'SELECT * FROM mytable';

/*
 * Create a PS_Pagination object
 * 
 * $conn = MySQL connection object
 * $sql = SQl Query to paginate
 * 10 = Number of rows per page
 * 5 = Number of links
 * "param1=valu1¶m2=value2" = You can append your own parameters to paginations links
 */
$pager = new PS_Pagination($conn, $sql, 10, 5, "param1=valu1¶m2=value2");

/*
 * Enable debugging if you want o view query errors
*/
$pager->setDebug(true);

/*
 * The paginate() function returns a mysql result set
 * or false if no rows are returned by the query
*/
$rs = $pager->paginate();
if(!$rs) die(mysql_error());
while($row = mysql_fetch_assoc($rs)) {
    echo $row['msg'],"<br />\n";
}

//Display the full navigation in one go
echo $pager->renderFullNav();

echo "<br />\n";

/*
 * Or you can display the individual links for more
 * control over HTML rendering.
 * 
*/

//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
 * $prefix = Will be prepended to the page link (optional)
 * $suffix = Will be appended to the page link (optional)
 * 
*/
echo $pager->renderNav('<span>', '</span>');

//Display the link to next page: >>
echo $pager->renderNext();

//Display the link to last page: Last
echo $pager->renderLast();

?>

0

13edcb7d5dd5c5c892404113b4f4847e 2nd file is

<?php


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;
    }
}
?>

it is working no doubt. but i am getting text only. please see the screenshot . i am begineer to php so that am asking you sir. i will do my best . can you please help me in that...

Edited by rajendher

0

I'm really sorry to be picky, but you seem to have found an online class and have just pasted the source and example code here.
I'm assuming it's from here:

http://phpsense.com/2007/php-pagination-script/

Now this beauty seems to be 7 years old. Things may have changed since then. However I did see an update on github (https://github.com/cjando/ps_pagination) from last year - so you may be in luck. I would add that this still uses "mysql" as opposed to mysqli or PDO - so it is in need of updating.

it is working no doubt. but i am getting text only. please see the screenshot . i am begineer to php so that am asking you sir. i will do my best . can you please help me in that...

I don't know what you were expecting. What was the output you though that was going to appear?

I would suggest that as a beginner, you may find it a worthwhile project to sit down and design your own paginator.

All you really need for a simple one are:

  • results per page to display
  • total number of results
  • url querystring parameter, e.g. record.php?page=1
0

ok thank you sir. thanks for all your posts.
i actually need pagination results as links.
like

Click Here
Click Here
Click Here
and so on....

First << 1 2 3 4 5 >> Last.

if you know any links please send. i am not asking complete code. am asking examples or explanation for that.

0

ok thank you sir. thanks for all your posts. i actually need pagination results as links. like

We're aware of what you need. It's just a question of how you're going to get there. With regard to links, we'd have to search too - so I think it's safe to say, you can do that yourself. Examples and explanations on pagination are plentiful in Daniweb's PHP forum. I believe I gave a search result in a previous post.

I'm sorry if this doesn't address your issue, but if you provided some of your code and stated what the problem was with it - that would get a lot more interest. This isn't the same as simply dumping the source code of a class that you found on another website.

BTW - I've written more pagination classes than I care to remember - they're not too difficult. Have a go.

Edited by diafol

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.