Here is the code for the included utiles.php that is at the top of the page
<?php
/**
* swPaginate( $Sql, $MRPP, $UriAdd, $SortByAllow = FALSE, $SortOrderSeed = FALSE )
*
* Short description:
* Returns an Array of all required paginate values and links
* This contains all the values and queries to produce
* paginated links from queries.
*
* @by rr1024
* @access public
* @type Active - There are 2 SQL Queries 1 query is passed passively
* @const $PageNumDis - +/- Numbers displayed to user 2 will display <First><Prev> 1 2 3 4 <Next><Last>
* @param $Sql - Primary data row query for display
* @param 1.1 MOD Not Required X $SqlCnt - Count all the rows in $Sql
* @param $MRPP - Maximum Rows Per Page - Defines the total I.E. Results per page
* number of results to be displayed per page from $Sql.
* @param $UriAdd - Your pages URI components, it must have URL and URI end in & we will append to this
* @param $SortByAllow - Array table list added to query to allow sorting by fields.
* @param $SortOrderSeed - String Default is ASC - Allowable is ASC, DESC and RAND but RAND does not function yet.
* @return $Paginate Array (
* ['RowList'] => You db results list for displaying the data on a page.
* ['FromToTotal'] => [OPTIONAL] Display result From n to nn and total results from the ['RowList']
* ['PagesNav'] => [OPTIONAL] Display "Pages:"
* ['HrefNav'] => html href link to all pages others are provided but not listed
* )
* @since 1.1
* @update 01.09.2007
* @usage $Sql = "SELECT * FROM `Blog` WHERE `New` = '1' ORDER BY `Date`";
* $Uri = $site['url'].'blog_search.php?blog=newblogs&';
* $PageNav = swPagination( $Sql, 30, $URI, FALSE, $Order );
* $res = $PageNav['RowList'];
* WHILE ( $arr = mysql_fetch_array( $res ) ) {
* $DataDisplay .= $arr['Name']."<br>";
* }
* @access ECHO $PageNav['HrefNav'];
* @depend dbRes() is my fuctional equivilate to old ae db_res() or standard mysql_query()
**/
FUNCTION swPagination( $Sql, $MRPP, $UriAdd, $SortByAllow = FALSE, $SortOrderSeed = FALSE )
{
GLOBAL $site;
$Paginate = array(); # Assign output as Array
$MaxRowsPP = $MRPP; # Maximum Rows Per Page
$SqlAdd = '';
$PageNumDis = 6; #If 2 Will show <First><Prev> 1 2 3 4 <Next><Last> +/- Integer value 2 before 2 after
$_GET = array_map( 'mysql_real_escape_string', $_GET ); // security
$Page = ( is_numeric( $_GET['page'] ) && $_GET['page'] > 0 ) ? $_GET['page'] : 1;
$From = ( ( $Page * $MaxRowsPP ) - $MaxRowsPP );
IF ( $SortOrderSeed != FALSE OR isset($_GET['sortorder']) ) {
$SortOrderAllow = array( 'ASC', 'DESC', 'RAND' );
//$SortOrder = ( in_array(strtoupper($_GET['sortorder']), $SortOrderAllow, TRUE) ) ? strtoupper($_GET['sortorder']) : $SortOrderAllow[0];
$SortTemp = strtoupper( $_GET['sortorder'] );
IF ( isset( $SortTemp ) ) {
IF ( in_array( $SortTemp, $SortOrderAllow, TRUE ) ) {
$SortOrder = $SortTemp;
}ELSE{
$SortOrder = strtoupper( $SortOrderSeed );
}
}ELSE{
$SortOrder = $SortOrderSeed;
}
IF ( $SortOrder == 'RAND' ) {
$SqlAdd = "RAND()";
}ELSE{
$SqlAdd = $SortOrder;
}
$SortOrder = strtolower($SortOrder);
$SortOrderUri = "&sortorder={$SortOrder}";
}ELSE{
$SortOrderUri = "&sortorder=asc";
$SqlAdd .= 'ASC';
}
IF ( $SortByAllow != FALSE ) {
IF ( is_array($SortByAllow) ) {
$SortBy = ( in_array($_GET['sortby'], $SortByAllow) ) ? $_GET['sortby'] : $SortByAllow[0];
}
$SortByUri = "&sortby={$SortBy}";
$SqlAdd .= " ORDER BY {$SortBy} ";
}ELSE{
$SortByUri = '';
$SqlAdd = '';
}
$Uri = $UriAdd.$PageUri.$SortByUri.$SortOrderUri;
$RowList = mysql_query( $Sql ." {$SqlAdd} LIMIT $From, $MaxRowsPP" );
$Paginate['RowList'] = $RowList; # used outside our function in a while loop to display our results.
$TotalResults = mysql_num_rows( mysql_query( $Sql ) ); # USE RAW SQL QUERY FOR THIS
$TotalPages = ceil( $TotalResults / $MaxRowsPP );
$Paginate['TotalRes'] = $TotalResults;
$ResFrom = $From + 1;
$ResTo = $From + mysql_num_rows( $RowList );
# For Testing Only
$Paginate['test_Paginate'] = "TotalPages = " . $TotalPages . "<br>".
"TotalResults = " . $TotalResults . "<br>".
"Max Rows PP = " . $MaxRowsPP . "<br>".
"Sample TotalResults = " . mysql_num_rows( mysql_query( $Sql ) ) . "<br>".
"SQL Query =" . $Sql ." {$SqlAdd} LIMIT $From, $MaxRowsPP"; # For Testing Only
#===============================================================
# START PAGINATE OUTPUT ARRAY
#===============================================================
IF ( $SortByAllow != FALSE ) {
FOREACH ( $SortByAllow AS $Key => $Value ) {
//echo "Key: $Key; Value: $Value<br />\n";
$DisplayName = str_replace( "_", " ", $Value );
$DisplayName = ucwords( str_replace ( "-", " ", $Value ) );
$Paginate['HrefSort_'.$Value] = "<a href ='{$_SERVER['PHP_SELF']}?{$Uri}'>$DisplayName</a>";
$Paginate['UriSort_'.$Value] = $Uri;
}
# $Paginate['HrefSortByID'] = "<a href = '{$_SERVER['PHP_SELF']}?page={$Page}&sortby=list_id&sortorder={$SortOrder}'>ID</a>";
# $Paginate['UriSortByID'] = "{$PageUri}{$SortByUri}{$SortOrderUri}";
# $Paginate['HrefSortByOrder'] = "<a href = '{$_SERVER['PHP_SELF']}?page={$Page}&sortby=list_order&sortorder={$SortOrder}'>ORDER</a>";
# $Paginate['UriSortByOrder'] = "{$PageUri}{$SortByUri}{$SortOrderUri}";
# $Paginate['HrefSortByName'] = "<a href = '{$_SERVER['PHP_SELF']}?page={$Page}&sortby=list_name&sortorder={$SortOrder}'>NAME</a>";
# $Paginate['UriSortByName'] = "{$PageUri}{$SortByUri}{$SortOrderUri}";
}
# Build First and Prev links. If on page 1, we won't make links
IF ( $Page > 1 ) {
$prev = ( $Page - 1 );
$Paginate['HrefNav'] .= "<a href='{$UriAdd}page=1{$SortByUri}{$SortOrderUri}'>First</a><strong> | </strong>";
$Paginate['UriNav'] .= "[FIRST]{$UriAdd}page=1{$SortByUri}{$SortOrderUri}[/FIRST]";
$Paginate['HrefFirst']= "<a href='{$UriAdd}page=1{$SortByUri}{$SortOrderUri}'>First</a><strong> | </strong>";
$Paginate['HrefNav'] .= "<a href='{$UriAdd}page={$prev}{$SortByUri}{$SortOrderUri}'>Prev</a><strong> | </strong>";
$Paginate['UriNav'] .= "[PREV]{$UriAdd}page={$prev}{$SortByUri}{$SortOrderUri}[/PREV]";
$Paginate['HrefPrev'] = "<a href='{$UriAdd}page={$prev}{$SortByUri}{$SortOrderUri}'>Prev</a><strong> | </strong>";
}
# build the links to the 2 previous and 2 next pages
FOR ( $i = ($Page - $PageNumDis ); $i <= ( $Page + $PageNumDis ); $i++ ) {
# only make a link if the prev/next is a valid page number
IF ( ( $i >= 1 ) && ( $i <= $TotalPages ) ) {
$Paginate['HrefNav'] .= ($Page == $i) ? "<strong>[$i]</strong>" : " <a href='{$UriAdd}page=$i{$SortByUri}{$SortOrderUri}'>$i</a> ";
$Paginate['UriNav'] .= ($Page == $i) ? "<strong>[$i]</strong>" : "[PAGE]{$UriAdd}page=$i{$SortByUri}{$SortOrderUri}[/PAGE]";
$Paginate[$i] = "{$UriAdd}page=$i{$SortByUri}{$SortOrderUri}";
}
}
# Build Next and Last links. If on last page, we won't make a links
IF ( $Page < $TotalPages ) {
$next = ( $Page + 1 );
$Paginate['HrefNav'] .= "<strong> | </strong><a href='{$UriAdd}page={$next}{$SortByUri}{$SortOrderUri}'>Next</a><strong> | </strong>";
$Paginate['UriNav'] .= "[NEXT]{$UriAdd}page={$next}{$SortByUri}{$SortOrderUri}[/NEXT]";
$Paginate['HrefNext'] = " | <a href='{$UriAdd}page={$next}{$SortByUri}{$SortOrderUri}'>Next</a><strong> | </strong>";
$Paginate['HrefNav'] .= "<a href='{$UriAdd}page={$TotalPages}{$SortByUri}{$SortOrderUri}'>Last</a>";
$Paginate['UriNav'] .= "[LAST]{$UriAdd}page={$TotalPages}{$SortByUri}{$SortOrderUri}[/LAST]";
$Paginate['HrefLast'] = "<a href='{$UriAdd}page={$TotalPages}{$SortByUri}{$SortOrderUri}'>Last</a>";
}
RETURN $Paginate;
}
?>
Any help would be great thanks