Jump to content

Archived

This topic is now archived and is closed to further replies.

ramtx

Pagination Issue

Recommended Posts

I've got a bunch of results of a query from an HTML form on a page (searchform.php). The form action = results.php. It runs fine, but when I click on one of the pagination links the variables don't pass. Consequently, I get an error in my SQL because my query ends up being "....WHERE prop_beds = ''..."

I guess I need help passing the variables to my next page. Here's my code for results.php:

[code]

<?php
include 'dbconn.php';

//if current page number, use it
//if not, set one!
if(!isset($_GET['page'])){
  $page = 1;
} else {
  $page = $_GET['page'];
}

//define the number of results per page
$max_results = 15;

//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 = "SELECT *
    FROM properties
    WHERE prop_beds = '$beds'
    AND prop_price <= '$price'
    AND (";

    // loop through array of types:
        foreach($type_check as $value){
        $sql .= "prop_type = '$value' || ";
    }
        // remove last set of tubes and add closing parenthesis:
        $sql = substr($sql, 0, strlen($sql)-4) . ')' . "LIMIT $from, $max_results";    
        echo $sql;
      $query = mysql_query($sql) or die("Error: " . mysql_error());
    
//display headers
  echo '<table class="results" width="380" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="14"><b>PROP #</b></td>
    <td height="14"><b>BEDS</b></td>
    <td height="14"><b>BATHS</b></td>
    <td height="14"><b>PRICE</b></td>
    <td height="14"><b>TYPE</b></td>
    <td height="14"><b>LINK</b></td>
  </tr>';

while($row = mysql_fetch_array($query)) {
  //build your formatted results here.


  echo '<tr>
        <td height="14">WC-'.$row["prop_id"].'</td>
        <td height="14">'.$row["prop_beds"].'</td>
        <td height="14">'.$row["prop_baths"].'</td>
        <td height="14">$'.$row["prop_price"].'</td>
        <td height="14">'.$row["prop_type"].'</td>';
        
  if ($row["prop_url"]){    //start of link check
  echo'<td height="14"><a href ="javascript:newWindow(\''.$row["prop_url"].'\')"> PIX </a></td>';
  }
  else
  {                      //display X if no link exists
  echo '<td height="14"><b>X</b></td>
  </tr>';
  }                      //end of link check
}                      
  echo '</table>';
  echo '<div align = "center"> <span class="regText">';

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

echo $total_results;

//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>";

}else {
echo '<div align="center" class="regText">Sorry, no records match your criteria.</div></center>';
     }                
     //print message if no matching records
             //end of main
?>

[/code]


Thanks in adavance.

Share this post


Link to post
Share on other sites
Did you ever get this fixed? I'm having the same problem right now and trying to work it out.

Share this post


Link to post
Share on other sites
How are you initiating what results to show? Im seeing $blah and $blah and no specific method, so Im taking it your replying on superglobals, and using GET?

try search.php?beds={$beds}&price=$price}&othervars&page=<pagetogoto> for each of your pagination links.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.