SEO | Link Popularity | Search Engine Consulting | SEO Tutorial | SEO Tools | SEO Forum
Reply
 
Thread Tools Rate Thread Display Modes
  #11  
Old 06-24-2006, 02:55 PM
ixpleo's Avatar
ixpleo ixpleo is offline
SEO Junior
 
Join Date: Jun 2006
Posts: 22 ixpleo is on a distinguished road
I wrote some heavily commented pagination code a while back, that if you read the comments, you should be able to learn from it. I just cleaned up the formatting slightly, so hopefully there aren't any parse errors that I missed.
PHP Code:
<?php

/*  Replace the following credentials with yours */

$server "localhost";
$username "user";
$password "pass";
$database "your_db";
$table "your_table";

// Connect To MySQL Server
@mysql_connect($server$username$password) or die("Couldn't Connect to Database");

// Select Database
@mysql_select_db($database) or die("Couldn't Select Database");

// set number of results to display per page (in this case, 10 per page)
$pagelimit "10";

// run query
$strSQL mysql_query("SELECT COUNT(*) as totalrows FROM $table") or die(mysql_error());

$row mysql_fetch_assoc($strSQL);

// count number of matches
$totalrows row["totalrows"];

// determine how many pages there will be by using ceil() and dividing total rows by pagelimit
$pagenums ceil ($totalrows/$pagelimit);

// if no value for page, page = 1
if ($page=='')
{
    
$page='1';
}

// create a start value
$start = ($page-1) * $pagelimit;

// blank matches found
echo "<b>" $totalrows " matches found</b><br>\n";

// Showing Results 1 to 10 (or if you're page limit were 15) 1 to 15, etc.
$starting_no $start 1;

if (
$totalrows $start $pagelimit
{
   
$end_count $totalrows;

else
{
    if (
$totalrows $start >= $pagelimit
    {
        
$end_count $start $pagelimit;
    }
}

   
echo 
"Results $starting_no to $end_count shown.<br>\n";

// create dynamic next, previous, and page links

/* lets say you're set to show 10 results per page and your script comes out with 12 results.
this will allow your script to say next 2 if you're on the first page and previous 10 if you're on the second page. */

if ($totalrows $end_count $pagelimit
{
   
$var2 $pagelimit;

else
{
    if (
$totalrows $end_count <= $pagelimit
    {
        
$var2 $totalrows $end_count;
    }
}

$space "&nbsp;";

// previous link (if you're on any page besides the first, create previous link)
if ($page>1
{
        echo 
"« <a href='" $PHP_SELF "?page=".($page-1)."' class=main>Previous" $space $pagelimit "</a>" $space $space "";
}

// dynamic page number links

    
for ($i=1$i<=$pagenums$i++) 
    {
        if (
$i!=$page
        {
            echo 
" <a href='" $PHP_SELF "?page=$i' class=main>$i</a>";
        }
        else 
        {
            echo 
" <b>[".$i."]</b>";
        }
    }


// next link (if the page you are on is less than the total amount of page numbers, there are more pages left)

    
if ($page<$pagenums
    {
        echo 
"" $space $space $space $space " <a href='" $PHP_SELF "?page=".($page+1)."' class=main>Next " $var2 "</a> »";
    }

/* output your data wherever you'd like.

BUT

in order for this all to work, before outputting your data, you have to run the query over using MySQL's LIMIT.
This will limit how many results are actually displayed on the page. */

   
$strSQL mysql_query("SELECT * FROM $table LIMIT $start,$pagelimit") or die(mysql_error());

// LIMIT 0,10 will start at 0 and display 10 results
// LIMIT 10,5 will start at 10 and display 5 results

/* now you can do whatever you'd like with this query. it will only output ten results per page.
change the $pagelimit variable to whatever to output more than 10 result per page. */


?>
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

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
Forum Jump


Login/Register
User Name
Password
Remember Me?

Forum Links
Forum Home
SEO Forum
Internet Marketing Forum
Web Design Forum
Web Hosting Forum
Programming Forum
SEO Chat

Quick Links
Forum Home
New Posts
Mark Forums Read
Open Buddy List
User Control Panel
Edit Avatar
Edit Profile
Edit Options
Miscellaneous
Subscribed Threads
My Profile

Search Forums

Advanced Search
All times are GMT -8. The time now is 09:47 AM.


Powered by: vBulletin Version 3.0.3
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.