*FIXED*Pagination script help please :)

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
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

*FIXED*Pagination script help please :)

Post by mikegotnaild »

Im lost :(. I get a different output than want with this script. Heres the output:

1 // this should have been the echo from the column 'band_name' in mysql

Description: 1 // this should have been the echo from the column 'description'

Previous | Page 1Next

// end of output

Heres the script:

Code: Select all

<?php  
   class Pager  
   {  
       function getPagerData($numHits, $limit, $page)  
       {  
           $numHits  = (int) $numHits;  
           $limit    = max((int) $limit, 1);  
           $page     = (int) $page;  
           $numPages = ceil($numHits / $limit);  

           $page = max($page, 1);  
           $page = min($page, $numPages);  

           $offset = ($page - 1) * $limit;  

           $ret = new stdClass;  

           $ret->offset   = $offset;  
           $ret->limit    = $limit;  
           $ret->numPages = $numPages;  
           $ret->page     = $page;  

           return $ret;  
       }  
   }  
?>
<?php  
    // get the pager input values 
    $page = $_GET['page'];  
    $limit = 16;  
    $result = mysql_query("select count(*) from Acoustic");  
    $total = mysql_result($result, 0, 0);  

    // work out the pager values 
    $pager  = Pager::getPagerData($total, $limit, $page);  
    $offset = $pager->offset;  
    $limit  = $pager->limit;  
    $page   = $pager->page;  

    // use pager values to fetch data 
    $query = "select * from Acoustic order by band_name limit $offset, $limit";  
    $result2 = mysql_query($query);  

    // use $result here to output page content
	 $bandname=mysql_result($result2,"band_name");
     $description=mysql_result($result2,"description");
	 
	 echo "<b>$bandname</b><br><br><b>Description:</b> $description<br><br>";

    // output paging system (could also do it before we output the page content) 
    if ($page == 1) // this is the first page - there is no previous page 
        echo "Previous";  
    else            // not the first page, link to the previous page 
        echo "<a href="thepage.php?page=" . ($page - 1) . "">Previous</a>";  

    for ($i = 1; $i <= $pager->numPages; $i++) {  
        echo " | ";  
        if ($i == $pager->page)  
            echo "Page $i";  
        else  
            echo "<a href="thepage.php?page=$i">Page $i</a>";  
    }  

    if ($page == $pager->numPages) // this is the last page - there is no next page 
        echo "Next";  
    else            // not the last page, link to the next page 
        echo "<a href="thepage.php?page=" . ($page + 1) . "">Next</a>";  
?>
EDIT*FIXED*
Heres my fix:

Code: Select all

<?php 

if (!eregi("modules.php", $PHP_SELF)) {

die ("You can't access this file directly...");
}
include("header.php");
$index = 1;//right sidebar or not 0=off 1=on
title("Select a Genra");
OpenTable();
?>
<?php  
   class Pager  
   {  
       function getPagerData($numHits, $limit, $page)  
       {  
           $numHits  = (int) $numHits;  
           $limit    = max((int) $limit, 1);  
           $page     = (int) $page;  
           $numPages = ceil($numHits / $limit);  

           $page = max($page, 1);  
           $page = min($page, $numPages);  

           $offset = ($page - 1) * $limit;  

           $ret = new stdClass;  

           $ret->offset   = $offset;  
           $ret->limit    = $limit;  
           $ret->numPages = $numPages;  
           $ret->page     = $page;  

           return $ret;  
       }  
   }  
?>
<?php  
    // get the pager input values 
    $page = $_GET['page'];  
    $limit = 16;  
    $result = mysql_query("select count(*) from Acoustic");  
    $total = mysql_result($result, 0, 0);  

    // work out the pager values 
    $pager  = Pager::getPagerData($total, $limit, $page);  
    $offset = $pager->offset;  
    $limit  = $pager->limit;  
    $page   = $pager->page;  

    // use pager values to fetch data 
    $query = "select * from Acoustic order by band_name limit $offset, $limit";  
    $result2 = mysql_query($query);  

    // use $result here to output page content
	 $num=mysql_numrows($result2);
	 $lo=0;
     while ($lo < $num) {
	 $bandname=mysql_result($result2,$lo,"band_name");
     $description=mysql_result($result2,$lo,"description");
	 
	 echo "<b>$bandname</b><br><br><b>Description:</b> $description<br><br>";
	 
	 ++$lo;
}
?>
<?

    // output paging system (could also do it before we output the page content) 
    if ($page == 1) // this is the first page - there is no previous page 
        echo "Previous";  
    else            // not the first page, link to the previous page 
        echo "<a href="thepage.php?page=" . ($page - 1) . "">Previous</a>";  

    for ($i = 1; $i <= $pager->numPages; $i++) {  
        echo " | ";  
        if ($i == $pager->page)  
            echo "Page $i";  
        else  
            echo "<a href="thepage.php?page=$i">Page $i</a>";  
    }  

    if ($page == $pager->numPages) // this is the last page - there is no next page 
        echo "Next";  
    else            // not the last page, link to the next page 
        echo "<a href="thepage.php?page=" . ($page + 1) . "">Next</a>";  
?>

<?
CloseTable();
include("footer.php"); 
?>
?>
Last edited by mikegotnaild on Wed Feb 18, 2004 7:39 am, edited 2 times in total.
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

Post by mikegotnaild »

buuump
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

Post by mikegotnaild »

assigned $result twice :/... This was a script i got from somewhere ...
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

Post by mikegotnaild »

still doesnt fix it though
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

Post by mikegotnaild »

$bandname and $description are outputting '1'. And i dont understand why. They should be outputting the information from the Columns 'band_name', and 'description' in mysql.
Last edited by mikegotnaild on Wed Feb 18, 2004 6:35 am, edited 1 time in total.
d3ad1ysp0rk
Forum Donator
Posts: 1661
Joined: Mon Oct 20, 2003 8:31 pm
Location: Maine, USA

Post by d3ad1ysp0rk »

it doesn't connect to the db..

and please dont post 5x in a row.. edit your posts..
mikegotnaild
Forum Contributor
Posts: 173
Joined: Sat Feb 14, 2004 5:59 pm

Post by mikegotnaild »

thats not the whole script though. i have the database connection there. i just posted the other stuff
mikegotnaild wrote:$bandname and $description are outputting '1'. And i dont understand why. They should be outputting the information from the Columns 'band_name', and 'description' in mysql.
Post Reply