Results 1 to 1 of 1

Thread: Pageination

  1. #1
    Join Date
    Feb 2008
    Posts
    90
    Thanks
    3
    Thanked 2 Times in 2 Posts

    Default Pageination

    Ive gotten the below working, but for some reason when i change the page the CSS of the rest of the page becomes messed up. Not ALL of the CSS is changed, just certain things are missing, is this normal or is it just due to messy CSS? haha

    http://www.phpeasystep.com/phptu/29.html

    The full code is listed here.
    Code:
    <style>
    div.pagination {
    	padding: 3px;
    	margin: 3px;
    }
    
    div.pagination a {
    	padding: 2px 5px 2px 5px;
    	margin: 2px;
    	border: 1px solid #AAAADD;
    	
    	text-decoration: none; /* no underline */
    	color: #000099;
    }
    div.pagination a:hover, div.pagination a:active {
    	border: 1px solid #000099;
    
    	color: #000;
    }
    div.pagination span.current {
    	padding: 2px 5px 2px 5px;
    	margin: 2px;
    		border: 1px solid #000099;
    		
    		font-weight: bold;
    		background-color: #000099;
    		color: #FFF;
    	}
    	div.pagination span.disabled {
    		padding: 2px 5px 2px 5px;
    		margin: 2px;
    		border: 1px solid #EEE;
    	
    		color: #DDD;
    	}
    	</style>
    
    <?php
    	/*
    		Place code to connect to your DB here.
    	*/
      my
    	// How many adjacent pages should be shown on each side?
    	$adjacents = 2;
    	
    	/* 
    	   First get total number of rows in data table. 
    	   If you have a WHERE clause in your query, make sure you mirror it here.
    	*/
    	$query = "SELECT COUNT(*) as num FROM $tbl_name";
    	$total_pages = mysql_fetch_array(mysql_query($query));
    	$total_pages = $total_pages[num];
    	
    	/* Setup vars for query. */
    	$targetpage = "hometest.php"; 	//your file name  (the name of this file)
    	$limit = 1; 								//how many items to show per page
    	$page = $_GET['page'];
    	if($page) 
    		$start = ($page - 1) * $limit; 			//first item to display on this page
    	else
    		$start = 0;								//if no page var is given, set start to 0
    	
    	/* Get data. */
    	$sql = "SELECT id FROM hmr LIMIT $start, $limit";
    	$result = mysql_query($sql);
    	
    	/* Setup page vars for display. */
    	if ($page == 0) $page = 1;					//if no page var is given, default to 1.
    	$prev = $page - 1;							//previous page is page - 1
    	$next = $page + 1;							//next page is page + 1
    	$lastpage = ceil($total_pages/$limit);		//lastpage is = total pages / items per page, rounded up.
    	$lpm1 = $lastpage - 1;						//last page minus 1
    	
    	/* 
    		Now we apply our rules and draw the pagination object. 
    		We're actually saving the code to a variable in case we want to draw it more than once.
    	*/
    	$pagination = "";
    	if($lastpage > 1)
    	{	
    		$pagination .= "<div class=\"pagination\">";
    		//previous button
    		if ($page > 1) 
    			$pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>";
    		else
    			$pagination.= "<span class=\"disabled\">« previous</span>";	
    		
    		//pages	
    		if ($lastpage < 7 + ($adjacents * 2))	//not enough pages to bother breaking it up
    		{	
    			for ($counter = 1; $counter <= $lastpage; $counter++)
    			{
    				if ($counter == $page)
    					$pagination.= "<span class=\"current\">$counter</span>";
    				else
    					$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";					
    			}
    		}
    		elseif($lastpage > 5 + ($adjacents * 2))	//enough pages to hide some
    		{
    			//close to beginning; only hide later pages
    			if($page < 1 + ($adjacents * 2))		
    			{
    				for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
    				{
    					if ($counter == $page)
    						$pagination.= "<span class=\"current\">$counter</span>";
    					else
    						$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";					
    				}
    				$pagination.= "...";
    				$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    				$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";		
    			}
    			//in middle; hide some front and some back
    			elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
    			{
    				$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    				$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    				$pagination.= "...";
    				for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
    				{
    					if ($counter == $page)
    						$pagination.= "<span class=\"current\">$counter</span>";
    					else
    						$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";					
    				}
    				$pagination.= "...";
    				$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
    				$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";		
    			}
    			//close to end; only hide early pages
    			else
    			{
    				$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
    				$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
    				$pagination.= "...";
    				for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
    				{
    					if ($counter == $page)
    						$pagination.= "<span class=\"current\">$counter</span>";
    					else
    						$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";					
    				}
    			}
    		}
    		
    		//next button
    		if ($page < $counter - 1) 
    			$pagination.= "<a href=\"$targetpage?page=$next\">next »</a>";
    		else
    			$pagination.= "<span class=\"disabled\">next »</span>";
    		$pagination.= "</div>\n";		
    	}
    ?>
    
    	<?php
    		while($row = mysql_fetch_array($result))
    		{
    	
      ************
    
    
    }
    ?>
    <?=$pagination?>
    Last edited by SChaput; 06-03-2009 at 10:15 PM.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •