Jump to content

Pagination Issue


ramtx

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.
Link to comment
Share on other sites

  • 1 month later...
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.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.