Hi guys,

I have a pagination script that seems to work fine, at least a part of it thanks to some older posts I found in this forum. The script gives me the correct number of pages (29 in this case) to navigate through according to 1 image per page as I set in the class (paginator.class.php).
My problem is in the array where the images are being selected. It pulls out all images (29), but they are all listed on page 1. The same happens on all the other pages.
Any ideas of how to sort this out, please? Thanks!

PHP Code:
    $query "SELECT COUNT(*) FROM photos WHERE sectorid=1";
    
$result mysql_query($query); 
    
$num_rows mysql_result($result0); 
      
    
    
$pages = new Paginator;
    
$pages->items_total $num_rows;
    
$pages->mid_range 30;
    
$pages->paginate();
    
    
// initialization
    
$result_array = array();
    
$counter 0;


    
// Full Size View of Tb photos
        
$number_of_thumbs_in_row 1;

        
$result mysql_query"SELECT photo_filename, sectorid FROM photos WHERE photo_filename != '' AND sectorid=1 ORDER BY photo_id desc $Pages->limit);
        
$nr mysql_num_rows$result );

        if( empty( 
$nr ) )
        {
            
$result_final "\t<tr><td class='noPhoto'>No Photos found</span></td></tr>\n";
        }
        else
        {
            while( 
$row mysql_fetch_array$result ) )
            {
                
$result_array[] = "<p><img src='".$images_dir."/tb_".$row[0]."' border='0' /></p>";
            }
            
mysql_free_result$result );    

            
$result_final "<tr>\n";
    
            foreach(
$result_array as $thumbnail_link)
            {
                if(
$counter == $number_of_thumbs_in_row)
                {    
                    
$counter 1;
                    
$result_final .= "\n</tr>\n<tr>\n";
                }
                else
                
$counter++;

                
$result_final .= "\t<td>".$thumbnail_link."</td>\n";
            }
    
            if(
$counter)
            {
                if(
$number_of_photos_in_row-$counter)
            
$result_final .= "\t<td colspan='".($number_of_photos_in_row-$counter)."'>&nbsp;</td>\n";

                
$result_final .= "</tr>";
            }
        }

// Final Output
echo <<<__HTML_END

<html>
<head>
<title></title>
</head>
<body>
<table width='100%' border='0' align='center' style='width: 100%;'>
$result_final        
</table>
</body>
</html>

__HTML_END; 
Here is the script for the pagination class (called for earlier in the file):
PHP Code:

class Paginator{
    var 
$items_per_page;
    var 
$items_total;
    var 
$current_page;
    var 
$num_pages;
    var 
$mid_range;
    var 
$low;
    var 
$high;
    var 
$limit;
    var 
$return;
    var 
$default_ipp 1;

    function 
Paginator()
    {
        
$this->current_page 1;
        
$this->mid_range 3;
        
$this->items_per_page = (!empty($_GET['ipp'])) ? $_GET['ipp']:$this->default_ipp;
    }

    function 
paginate()
    {
        if(
$_GET['ipp'] == 'All')
        {
            
$this->num_pages ceil($this->items_total/$this->default_ipp);
            
$this->items_per_page $this->default_ipp;
        }
        else
        {
            if(!
is_numeric($this->items_per_page) OR $this->items_per_page <= 0$this->items_per_page $this->default_ipp;
            
$this->num_pages ceil($this->items_total/$this->items_per_page);
        }
        
$this->current_page = (int) $_GET['page']; // must be numeric > 0
        
if($this->current_page Or !is_numeric($this->current_page)) $this->current_page 1;
        if(
$this->current_page $this->num_pages$this->current_page $this->num_pages;
        
$prev_page $this->current_page-1;
        
$next_page $this->current_page+1;

        if(
$this->num_pages 3)
        {
            
$this->return = ($this->current_page != And $this->items_total >= 3) ? "<a class=\"paginate\" href=\"$_SERVER[PHP_SELF]?page=$prev_page&ipp=$this->items_per_page\"><img src='../images/arrow_left.gif' border='0' /></a> ":"<span class=\"inactive\" href=\"#\"><img src='../images/arrow_left.gif' border='0' /></span> ";

            
$this->start_range $this->current_page floor($this->mid_range/2);
            
$this->end_range $this->current_page floor($this->mid_range/2);

            if(
$this->start_range <= 0)
            {
                
$this->end_range += abs($this->start_range)+1;
                
$this->start_range 1;
            }
            if(
$this->end_range $this->num_pages)
            {
                
$this->start_range -= $this->end_range-$this->num_pages;
                
$this->end_range $this->num_pages;
            }
            
$this->range range($this->start_range,$this->end_range);

            for(
$i=1;$i<=$this->num_pages;$i++)
            {
                if(
$this->range[0] > And $i == $this->range[0]) $this->return .= " ... ";
                
// loop through all pages. if first, last, or in range, display
                
if($i==Or $i==$this->num_pages Or in_array($i,$this->range))
                {
                    
$this->return .= ($i == $this->current_page And $_GET['page'] != 'All') ? "<a title=\"Go to page $i of $this->num_pages\" class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" title=\"Go to page $i of $this->num_pages\" href=\"$_SERVER[PHP_SELF]?page=$i&ipp=$this->items_per_page\">$i</a> ";
                }
                if(
$this->range[$this->mid_range-1] < $this->num_pages-And $i == $this->range[$this->mid_range-1]) $this->return .= " ... ";
            }
            
$this->return .= (($this->current_page != $this->num_pages And $this->items_total >= 3) And ($_GET['page'] != 'All')) ? "<a class=\"paginate\" href=\"$_SERVER[PHP_SELF]?page=$next_page&ipp=$this->items_per_page\"><img src='../images/arrow_right.gif' border='0' /></a>\n":"<span class=\"inactive\" href=\"#\"><img src='../images/arrow_right.gif' border='0' /></span>\n";
        }
        else
        {
            for(
$i=1;$i<=$this->num_pages;$i++)
            {
                
$this->return .= ($i == $this->current_page) ? "<a class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" href=\"$_SERVER[PHP_SELF]?page=$i&ipp=$this->items_per_page\">$i</a> ";
            }
            
$this->return .= "<a class=\"paginate\" href=\"$_SERVER[PHP_SELF]?page=1&ipp=All\">All</a> \n";
        }
        
$this->low = ($this->current_page-1) * $this->items_per_page;
        
$this->high = ($_GET['ipp'] == 'All') ? $this->items_total:($this->current_page $this->items_per_page)-1;
        
$this->limit = ($_GET['ipp'] == 'All') ? "":" LIMIT $this->low,$this->items_per_page";
    }

    function 
display_items_per_page()
    {
        
$items '';
        
$ipp_array = array(10,25,50,100,'All');
        foreach(
$ipp_array as $ipp_opt)    $items .= ($ipp_opt == $this->items_per_page) ? "<option selected value=\"$ipp_opt\">$ipp_opt</option>\n":"<option value=\"$ipp_opt\">$ipp_opt</option>\n";
        return 
"<span class=\"paginate\">Items per page:</span><select class=\"paginate\" onchange=\"window.location='$_SERVER[PHP_SELF]?page=1&ipp='+this[this.selectedIndex].value;return false\">$items</select>\n";
    }

    function 
display_jump_menu()
    {
        for(
$i=1;$i<=$this->num_pages;$i++)
        {
            
$option .= ($i==$this->current_page) ? "<option value=\"$i\" selected>$i</option>\n":"<option value=\"$i\">$i</option>\n";
        }
        return 
"<span class=\"paginate\">Page:</span><select class=\"paginate\" onchange=\"window.location='$_SERVER[PHP_SELF]?page='+this[this.selectedIndex].value+'&ipp=$this->items_per_page';return false\">$option</select>\n";
    }

    function 
display_pages()
    {
        return 
$this->return;
    }