De pagina-navigatie-class (met voorbeeld)
Spoiler tonen
Credits aan
Kevin Verhoef. In gemodificeerde vorm gebruik ik deze in mijn eigen CMS.
Pagination.class.php[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
* Used for building querys witch need pagination.
*/[/COLOR]
[URL="http://www.php.net/class"]class[/URL] Pagination
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]/**
* Simpel layout for page numbering
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [URL="http://www.php.net/static"]static[/URL] [COLOR= #007700]function[/COLOR] simplePageLinks[COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]getBaseUrl[COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]==[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]" <a class="page" href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]getFirstUrl[COLOR= #007700]() .[/COLOR] [COLOR= #DD0000]"">"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]" <a class="page" href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"">"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage[COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<b>$i</b>"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"$i"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"</a> "[/COLOR][COLOR= #007700];
}
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$return[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Simpel layout for page numbering
*/[/COLOR]
[COLOR= #007700]function[/COLOR] pageLinks[COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$iconLocation[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"img/pagination-icons"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]getBaseUrl[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$firstLink[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]getFirstUrl[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<table class="pagination"><tr>"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages[COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]""[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// max 10 links[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]!=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a class="no_pagination" href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$firstLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]""><img src=$iconLocation/page-first.gif></a></td>"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a class="no_pagination" href=""[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$firstLink[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700]. ([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]""><img src=$iconLocation/page-prev.gif></a></td>"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><img src=$iconLocation/page-first-disabled.gif></td>"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><img src=$iconLocation/page-prev-disabled.gif></td>"[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]// more then standard 5 left[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]4[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages[COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$leftCalcCount[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]9[/COLOR] [COLOR= #007700]- ([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage[COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$leftCalcCount[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]5[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// Linker links[/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]$leftCalcCount[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a "[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// add class[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage[COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"class="current" "[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$firstLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"">"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"">"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage[COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<b>$i</b>"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"$i"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"</a></td>"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$count[/COLOR][COLOR= #007700]--;
}[/COLOR]
[COLOR= #FF8000]// Rechter links[/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages[COLOR= #007700])[/COLOR]
[URL="http://www.php.net/break"]break[/URL][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"">"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage[COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<b>$i</b>"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"$i"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"</a></td>"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]!=[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages[COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a class="no_pagination" href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700]. ([/COLOR][COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]) .[/COLOR] [COLOR= #DD0000]""><img src=$iconLocation/page-next.gif></a></td>"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><a class="no_pagination" href=""[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$baseLink[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$pagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pages [COLOR= #007700].[/COLOR] [COLOR= #DD0000]""><img src=$iconLocation/page-last.gif></a></td></td>"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><img src=$iconLocation/page-next-disabled.gif></td>"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"<td><img src=$iconLocation/page-last-disabled.gif></td>"[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$return[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"</tr></table>"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$return[/COLOR][COLOR= #007700];
}
}[/COLOR]
?>
PagedQuery.class.php[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
* Used for building querys witch need pagination.
*/[/COLOR]
[URL="http://www.php.net/class"]class[/URL] PagedQuery
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]/** @var integer Total number of records */[/COLOR]
[COLOR= #007700]var[/COLOR] [COLOR= #0000BB]$total[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/** @var integer Record length of a page */[/COLOR]
[COLOR= #007700]var[/COLOR] [COLOR= #0000BB]$pageSize[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/** @var integer Total pages */[/COLOR]
[COLOR= #007700]var[/COLOR] [COLOR= #0000BB]$pages[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/** @var string Current requested page */[/COLOR]
[COLOR= #007700]var[/COLOR] [COLOR= #0000BB]$currentPage[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/** the variable in the url to indicate the current page. Defaul = page */[/COLOR]
[COLOR= #007700]var[/COLOR] [COLOR= #0000BB]$pageVar[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/**
* Construct a PagedQuery. The $query variable will be replaced by a new
* query wich will allow pagination.
* @param string $query Sql select query
* @param integer $totalRows Number of rows to show on a page
* @param integer $pageVar (optional) The used variable for pagination
*/[/COLOR]
[COLOR= #007700]function[/COLOR] __construct[COLOR= #007700](&[/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$totalRows[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$pageVar[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"page"[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]// set pageVar[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$pageVar[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// Get the current page[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$pageVar[/COLOR][COLOR= #007700]]) &&[/COLOR] [URL="http://www.php.net/is_numeric"]is_numeric[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$pageVar[/COLOR][COLOR= #007700]]))
{[/COLOR]
[COLOR= #0000BB]$currentPage[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$pageVar[/COLOR][COLOR= #007700]];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$currentPage[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageSize [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$totalRows[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]currentPage [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$currentPage[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//$query = strtolower($query);
// Split the query to create a new count query[/COLOR]
[URL="http://www.php.net/list"]list[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$queryStart[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$queryEnd[/COLOR][COLOR= #007700]) =[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]" FROM "[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$query[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// Create the count query[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/substr_count"]substr_count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$queryEnd[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]"group by "[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]) ==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"select count(*) from (select count(*) from "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$queryEnd[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]") as t1"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"select count(*) from "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$queryEnd[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// Get the total rows
//echo "debug: ".$query;[/COLOR]
[COLOR= #0000BB]$result[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Pagenav. error: "[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/mysql_error"]mysql_error[/URL][COLOR= #007700]());[/COLOR]
[COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_row"]mysql_fetch_row[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]total [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #FF8000]// bereken het aantal paginas[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pages [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/ceil"]ceil[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]total / [COLOR= #0000BB]$totalRows[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// Create the new query[/COLOR]
[COLOR= #0000BB]$offset[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$currentPage[/COLOR] [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]) *[/COLOR] [COLOR= #0000BB]$totalRows[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$queryStart[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" from "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$queryEnd[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" limit "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$offset[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$totalRows[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" "[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Get the base link from the requested url current
* Used to build the page links
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getBaseUrl[COLOR= #007700]()
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]]))
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]"&"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]// replace and append the query string[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/sizeOf"]sizeOf[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700]) <=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]// try to replace the var[/COLOR]
[COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"&"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #FF8000]// try to replace the first var[/COLOR]
[COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// correct & if this is the first char[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]) ==[/COLOR] [COLOR= #DD0000]"&"[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700],[/COLOR][URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700])-[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"&"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR][COLOR= #007700];
}
}
}[/COLOR]
[COLOR= #FF8000]/**
* Get the url for the first page,
* without the page infor in the url.
* This will prevent urls with duplicate content
* for search engine optimization.
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] getFirstUrl[COLOR= #007700]()
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]]))
{[/COLOR]
[COLOR= #FF8000]// try to replace the var[/COLOR]
[COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"&"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #FF8000]// try to replace the first var[/COLOR]
[COLOR= #0000BB]$newQueryString[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar [COLOR= #007700].[/COLOR] [COLOR= #DD0000]"="[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_GET[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]pageVar[COLOR= #007700]],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// strip off last character for correct url[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$newQueryString[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]] !=[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"?"[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]QUERY_STRING[/COLOR][COLOR= #007700]];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]"."[/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #FF8000]/**
* Shorcut function for calling the static
* method pageLinks from class Pagination
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] pageLinks[COLOR= #007700]()
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] Pagination[COLOR= #007700]:[/COLOR][COLOR= #007700]:[/COLOR]pageLinks[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Shorcut function for calling the static
* method simplePageLinks from class Pagination
*/[/COLOR]
[URL="http://www.php.net/public"]public[/URL] [COLOR= #007700]function[/COLOR] simplePageLinks[COLOR= #007700]()
{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] Pagination[COLOR= #007700]:[/COLOR]SMILEYYYYYYYYYYYBEGIN[COLOR= #007700]:[/COLOR]simplePageLinks[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]);
}
}[/COLOR]
?>
PageingExample.php (Het voorbeeld<link rel="stylesheet" href="pagination.css" type="text/css" />
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]// include the necessary files[/COLOR]
[URL="http://www.php.net/include_once"]include_once[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"PagedQuery.class.php"[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/include_once"]include_once[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Pagination.class.php"[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// Setup a database connection[/COLOR]
[URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"localhost"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"root"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700])[/COLOR]
or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Unable to connect to MySQL"[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"referer"[/COLOR][COLOR= #007700])[/COLOR]
or [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Unalble to select MySQL database"[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// Create the PagedQuery[/COLOR]
[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"select * from test"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$totalRows[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// Max rows on a page[/COLOR]
[COLOR= #0000BB]$PagedQuery[/COLOR] [COLOR= #007700]= new[/COLOR] PagedQuery[COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$totalRows[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// The query has been changed to limit the rows
// Next you do some stuff to display the results.
// Maybe something like this, just as long as you use the $query:[/COLOR]
[COLOR= #0000BB]$result[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_row"]mysql_fetch_row[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$result[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #FF8000]//echo $row[0] . "<br>";[/COLOR]
[COLOR= #007700]}[/COLOR]
[COLOR= #FF8000]// output the pagination is as simple as:[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$PagedQuery[/COLOR][COLOR= #007700]->[/COLOR]pageLinks[COLOR= #007700]();[/COLOR]
[COLOR= #FF8000]// You can also use the simplePageLink function
//echo $PagedQuery->simplePageLinks();
// Or maybe build your own layout function for the pagination[/COLOR]
?>