Page 1 of 1

More pagination Yawn....

Posted: Thu Sep 01, 2005 4:29 am
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

Posted: Thu Sep 01, 2005 5:25 am
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.

Posted: Thu Sep 01, 2005 5:38 am
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. )