More pagination Yawn....

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
Simplecat
Forum Newbie
Posts: 11
Joined: Wed Aug 24, 2005 6:27 am

More pagination Yawn....

Post by Simplecat »

Hi Everybody

I have a html page with a search form on it which when submitted brings up the users required criteria results on a php page. 'search_php'. I have put a pagination script on this page. This works fine when clicking the next link to view the next page of results. After clicking the next link it will say 'search_php?page = 2 in the address bar,... click next again and it says page 3 in the address bar so far so good. At this point I thought :at last, finally sorted this pagination headache.

But then I clciked the previous link... to go back.. which was OK until the 'search_php?page = 1 address came up in the address bar of browser. my original search results were lost. 'search_php?page = 1 was not showing the original required results from the form... Huh... Do I need to have the form on search_php page to eradicate this. Im pretty sure the pagination script is OK I can send it in if it helps

Hope someone can help... Want my life back

Simplecat
User avatar
raghavan20
DevNet Resident
Posts: 1451
Joined: Sat Jun 11, 2005 6:57 am
Location: London, UK
Contact:

Post by raghavan20 »

Its better if you post your pagination script and the few lines of code where you make the call to the pagination in the other page.
User avatar
Simplecat
Forum Newbie
Posts: 11
Joined: Wed Aug 24, 2005 6:27 am

Post by Simplecat »

The call from the html page:

Code: Select all

<form Action ="search-php" Method= "GET">
The pagination code:

Code: Select all

if(!isset($_GET['page'])){ 
    $page = 1; 
} else { 
    $page = $_GET['page']; 
} 

// Define the number of results per page 
$max_results = 10; 

// Figure out the limit for the query based 
// on the current page number. 
$from = (($page * $max_results) - $max_results); 

// Perform MySQL query on only the current page number's results 

$sql = mysql_query("SELECT * FROM pages LIMIT $from, $max_results"); 

while($row = mysql_fetch_array($sql)){ 
    // Build your formatted results here. 
    echo $row['title']."<br />"; 
} 

// Figure out the total number of results in DB: 
$total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM pages"),0); 

// Figure out the total number of pages. Always round up using ceil() 
$total_pages = ceil($total_results / $max_results); 

// Build Page Number Hyperlinks 
echo "<center>Select a Page<br />"; 

// Build Previous Link 
if($page > 1){ 
    $prev = ($page - 1); 
    echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$prev\"><<Previous</a> "; 
} 

for($i = 1; $i <= $total_pages; $i++){ 
    if(($page) == $i){ 
        echo "$i "; 
        } else { 
            echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$i\">$i</a> "; 
    } 
} 

// Build Next Link 
if($page < $total_pages){ 
    $next = ($page + 1); 
    echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$next\">Next>></a>"; 
} 
echo "</center>"; 
?>
The original search results seem to be lost when i return to first page using previous link

An ideas greatly appreciated

( JAM | Added PHP tags. )
Post Reply