TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 08-25-2010, 08:41 AM   #1 (permalink)
The Addict
 
sarmenhb's Avatar
 
Join Date: Jan 2008
Location: los angeles
Posts: 309
Thanks: 44
sarmenhb is on a distinguished road
Default need help on pagination class.

the problem with the class is that if i want to display 30 records at a time and i have 60 total records the pagination divs that shows the page numbers only shows page #1 and not page #2. i have tried to figure out how to fix it but i have given up. any help would greatly be apreciated.

this is how i call attributes to the class.
PHP Code:
$paginate = new Pagination;
$paginate->pageName "index.php";  //sets the page to use
$paginate->perPage 10//show num of records per page
$paginate->adjacents 3//current page adjacent to 
$paginate->sql "select * from tbl_products"//the main query
$query $db->query($paginate->getData());

while(
$row mysql_fetch_object($query)) {
  print 
$row->pName."<br/>";
}
    
    
$paginate->showPagination(); //shows the pagination div 


here is the class.

PHP Code:
include_once("class.db.php");

class 
Pagination 
{
        
    var 
$param;
    var 
$perPage;
    var 
$adjacents;
    var 
$start;
    var 
$sql;
    var 
$pageName;
        
        
     function 
__construct() 
    {
        
$this->db = new  MysqlDB;
        
$this->db->connect();
     }
        
    function 
setParam() 
    {
                    
        if(isset(
$_GET['page']) && is_numeric($_GET['page']) && ($_GET['page'] > 0)) 
        {
            
$this->param $_GET['page'];
        } 
        
        else 
        {
            
$this->param 1;
        }
    }
        
                
        function 
setIndex()
        {
            
$this->setParam();
            return 
$this->start = ($this->param $this->perPage) - $this->perPage;
        }
        
        function 
showPagination($param1=null,$param2=null,$param3=null
        {
            
$qRows $this->db->query($this->sql);
            
$numRows $this->db->num_rows($qRows);
            
$numOfPages ceil($numRows $this->perPage);
            
$param $this->param;
            
$pageName $this->pageName;
            
$string "";
            
            
//set pagination parameters.
            
if($param1 != null
            {
                if(isset(
$_GET[$param1])) 
                {
                    
$param1Value $_GET[$param1];
                    
$string .= "&".$param1."=".$param1Value;
                }
            }
            
            
            if(
$param2 != null
            {
                if(isset(
$_GET[$param2])) 
                {
                    
$param2Value $_GET[$param2];
                    
$string .= "&".$param2."=".$param2Value;
                }
            }
            
            
            if(
$param3 != null
            {
                if(isset(
$_GET[$param3])) 
                {
                    
$param3Value $_GET[$param3];
                    
$string .= "&".$param3."=".$param3Value;
                }
            }
            
        
    
            
            print 
"<div class='pagination'>";

            print 
"<a href='$this->pageName?page=1$string' class='previous-off'> First </a>";
            
            
            
// ----------------------------------------------------------------------------        
                // PRINT ALL PAGES TO THE LEFT //
                
if(($param $this->adjacents) > 1
                {
                    print 
"<span>...</span>";

                    
$lowerLimit $param $this->adjacents;

                    
//print all on left side.
                    
for($i $lowerLimit$i$param$i++) 
                    {
                        print 
"<a href='$pageName?page=$param = $i$string'> $i </a>";
                    }

                    }  
                    
                    else 
                    {

                        
//print all numbers between current page and  first page.

                        
for($i 1$i $param$i++) 
                        {
                            print 
"<a href='$pageName?page=$i$string'> $i </a>";
                        }
                    }
            
// ----------------------------------------------------------------------------
            
            
            
            //print current page
            
if(($param != 0) && ($param != $numOfPages)) 
            {
                print 
"<span class='current'>$param</span>";
            }
            
            
            
            
            
// ----------------------------------------------------------------------------            
                        //PRINT ALL PAGES TO THE RIGHT
                
if(($param $this->adjacents) < $numOfPages
                {

                    
$upperLimit $param $this->adjacents;

                    for(
$i=($param 1); $i<=$upperLimit$i++) 
                    {
                        print 
"<a href='$pageName?page=$i$string'> $i </a>";
                    }
                        print 
"<span>...</span>";
                    } 
                    else 
                    {

                        
//print all page numbers if out of padded range

                        
for($i = ($param 1); $i<$numOfPages$i++ ) 
                        {
                            print 
"<a href='$pageName?page=$i$string'> $i </a>";
                        }

                    }
            
            
// ----------------------------------------------------------------------------
    
            
$lastPage $numOfPages 1;
            print 
"<a class='next' href='$pageName?page=$lastPage$string'> Last </li>";
    
            print 
"</div>";
        }
        
        
        
        
        
        function 
getData() 
        {
            
$query $this->sql;
            
$this->start $this->setIndex();
            return 
"$query LIMIT $this->start$this->perPage";
        }
        
        
        
        function 
errors() 
        {
            
$query $this->sql;
            print 
"$query LIMIT $this->start$this->perPage"."<br/>";
            print 
"this->start ".$this->start."<br/>";
            print 
"this->param ".$this->param."<br/>";
            print 
"this->perPage ".$this->perPage."<br/>";
            print 
"this->setindex() ".$this->setIndex()."<br/>";
        }
        
        
        

}
    
?> 
__________________
no signature set
sarmenhb is offline  
Reply With Quote
Old 10-25-2010, 08:11 PM   #2 (permalink)
The Prestige
Upcoming Programmer Inquisitive 
 
Tanax's Avatar
 
Join Date: Sep 2007
Location: Sweden, Stockholm
Posts: 1,080
Thanks: 115
Tanax is on a distinguished road
Default

Try changing
php Code:
if(($param + $this->adjacents) < $numOfPages)

to

php Code:
if(($param + $this->adjacents) <= $numOfPages)
__________________
Tanax is offline  
Reply With Quote
Old 10-18-2012, 09:58 AM   #3 (permalink)
The Addict
 
Join Date: Oct 2012
Posts: 244
Thanks: 0
dashixiong is on a distinguished road
Default

Some conservatives have Coach Factory Outlet pushed that critique further, saying that Mr. Obama’s policies are too costly, often assist the wrong people Louis Vuitton Belts and could have the paradoxical effect of driving up college costs. The dispute turns not just on different Coach Factory Outlet assessments of how policies play out, but on differing philosophical views about the role of government. During Gucci Belts his time in office, Mr. Obama has sharply increased aid to low- and middle-income students, notably through the Pell Grant Coach Factory Outlet program, which grew from $14.6 billion given to 6 million students in 2008, to nearly $40 billion for Coach Factory Outlet almost 10 million students this year. His administration also made it easier to request aid, shortening the Coach Factory Online complex federal application and allowing people to transfer their financial information electronically from the Internal Coach Outlet Online Revenue Service database. But while many education experts laud his efforts, analysts of varying political Coach Outlet Online stripes have also questioned how much impact some of the president’s policies will have, noting that the prices Coach Online Outlet charged by colleges, and student borrowing, continue to climb.But behind the headlines about soaring costs, the Coach Factory Outlet Online reality is more complex and wildly uneven, because a growing number of students receive Coach Outlet Online financial aid, and only relatively high-income families pay those fast-rising sticker prices. Adjusted for Coach Factory Online inflation, the College Board calculates, the average net price changed little over the last decade at private Coach Factory Outlet schools, and rose only modestly at public ones.Defending federal spending, Arne Duncan, the secretary of Hermes Belts education, said that for more than 30 years, college prices had risen even when federal aid had not, leading him to believe Coach Factory Online there was zero correlation.
dashixiong is offline  
Reply With Quote
Old 10-22-2012, 08:07 AM   #4 (permalink)
The Addict
 
Join Date: Oct 2012
Posts: 244
Thanks: 0
dashixiong is on a distinguished road
Default Coach Outlet

You’ve relativelyCoach Outlet recently arrived in New Delhi after living in two of Asia’s other great cities,Coach Outlet Store Online Tokyo and Hong Kong, for several years. Do these cities feel like they’re part of the same continent? Yes, and no. In terms Coach Factory Onlineof infrastructure, they couldn’t be more different. Getting regularCoach Outlet power and water at my house in New Delhi is never a sure thing, even though Coach Purse Outlet OnlineI’m paying the same rent that I paid in Tokyo and almost the same electricity prices. Both Hong Kong and Tokyo are also crowded places,Coach Factory Outlet Online but both cities are incredibly well planned and efficiently run. Efficient is not a word I would use to describe my Coach Bags Outlet Onlineday-to-day life in New Delhi. On the other hand, one thing that I think Hong Kong and New Delhi have in common isCoach Handbags Outlet a shared sense of optimism — a feeling that the best is yet to come. That’s definitely not the feeling you get in Tokyo,Coach Outlet Online or in the U.S. when I go home. It’s a big part of what I find addictive about living and working in this part of the world. You feel like you’re watching the future unfold.
dashixiong is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Advance Pagination Class Rendair Advanced PHP Programming 13 02-01-2013 11:08 AM
My first pagination class allworknoplay Absolute Beginners 1 10-22-2012 08:27 AM
base classes..... allworknoplay Absolute Beginners 16 05-10-2009 08:09 PM
[Tutorial] Basic tutorial about class basics Tanax Absolute Beginners 14 07-24-2008 01:37 PM
PHP5 Classes A to Z Part 1 quantumkangaroo Advanced PHP Programming 11 04-01-2008 04:21 AM


All times are GMT. The time now is 03:16 AM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design