paginate search result

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
balamberas
Forum Newbie
Posts: 10
Joined: Fri Mar 06, 2009 12:36 pm

paginate search result

Post by balamberas »

Hi, I have a paginations script to display data from my database but i would like to paginate someones search results. I have this script but get an error that says "syntax error, unexpected '=', expecting '}'" for this if(!$start){$start = 0;}

Code: Select all

 
<?php
include ("connect.php");
$per_page = 20;
$start = $_GET ['start'];
$record_count = mysql_num_rows (mysql_query("SELECT * FROM flats WHERE `location` LIKE '%$keyword%' OR
`location` LIKE '%$keyword%'));
$max_pages = $record_count / $per_page; // may come out as a decimal
if(!$start){$start = 0;}
$get = mysql_query("SELECT * FROM flats WHERE `location` LIKE '%$keyword%' OR
`location` LIKE '%$keyword%' ORDER BY date_posted DESC LIMIT $start, $per_page");
?>
 
Charles256
DevNet Resident
Posts: 1375
Joined: Fri Sep 16, 2005 9:06 pm

Re: paginate search result

Post by Charles256 »

line 6 , the second part of your record_count query you didn't close your query. opened it with a " and didn't close it. Try using a PHP editor that does text highlighting so these kinds of errors reach out and touch you.
balamberas
Forum Newbie
Posts: 10
Joined: Fri Mar 06, 2009 12:36 pm

Re: paginate search result

Post by balamberas »

thanks, I have one more problem. the prev 1 2 3 4 next is not giving the result i want. I get the error msg:
Notice: Undefined index: submit, Notice: Undefined index: search
you didnt submit a keyword.

I know that when i press page 2 it reads search.php again but I dont know how to solve it.

Code: Select all

 
<header>
<?php
include ("connect.php");
 
$per_page = 20;
$start = $_GET ['start'];
$record_count = mysql_num_rows (mysql_query("SELECT * FROM flats WHERE `location` LIKE '%$keyword%' OR
`location` LIKE '%$keyword%'"));
$max_pages = $record_count / $per_page; // may come out as a decimal
if(!$start){$start =0;}
$get = mysql_query("SELECT * FROM flats WHERE `location` LIKE '%$keyword%' OR
`location` LIKE '%$keyword%' ORDER BY date_posted DESC LIMIT $start, $per_page");
?>
 
</header>
<body>
<td>
<tr>
<?php
 
include ('connect.php');
 
error_reporting(E_ALL);
ini_set('display_errors', '1');
 
$submit = $_GET['submit'];
$search = $_GET['search'];
$x=0;
$construct='';
$foundnum=0;  
 
if (!$submit)
   
  echo "you didnt submit a keyword.";  
 
else
 
{
 
if (strlen($search)<=2)
 
   echo "search term to short.";
 else  
{
  echo " You searched for <b>$search</b><hr size='1'>";
 
  //connect to our database
 
 $search_exploded = explode(" ",$search);
 
 
 foreach($search_exploded as $search_each)
 
{
 
// construct query
 
$x++;
if ($x==1)
    $construct .= " location LIKE '%$search_each%'";  
    else
    $construct .= " OR location LIKE '%$search_each%'";
     
      }
 
   // echo out construct
   
 $construct = "SELECT * FROM flats WHERE $construct";
 $run = mysql_query($construct);
 $foundnum = mysql_num_rows($run);
 
 
if ($foundnum==0)
  echo "No results found.";
else
{
   echo "$foundnum result found!<p>";
 while ($runrows = mysql_fetch_assoc($run))
 
{
 
// get data
 
   $select = $runrows['type'];
   $title = $runrows['title'];
   $location = $runrows['location'];
   $rent = $runrows['rent'];
   $description = $runrows['description'];
   $contactEmail = $runrows['contactEmail'];
   $number = $runrows['number'];
 
echo "
 
    $title
    <br>
    $select
    <br>
    $rent
    <br>
    $location
    <br>
    $description
    <br>
    $contactEmail
    <br>
    $number
   <hr>";
 
}      
 
 
      }
    }
  }
 
 
?>
 
</td>
</tr>
 
     <tr align="center">
     <td>
     
      <?php
$prev = $start - $per_page;
$next = $start + $per_page;
 
      if($start>0){
      echo "<a href='search.php?start=$prev'> Prev </a>";}
      $i=1;
      for ($x=0;$x<$record_count;$x=$x+$per_page)
      {
       if($start!=$x){
       echo "<a href='search.php?start=$x'>$i | </a>";
      }
       else{
      echo "<a href='search.php?start=$x'><b> $i | </b></a>";}
       $i++;
       }
      if($start<$record_count-$per_page){echo "<a href='search.php?start=$next'> Next </a>";}
      ?>
 
 
Post Reply