Page 1 of 1
paginate search result
Posted: Sun Jan 10, 2010 8:50 am
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");
?>
Re: paginate search result
Posted: Sun Jan 10, 2010 9:11 am
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.
Re: paginate search result
Posted: Sun Jan 10, 2010 3:27 pm
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>";}
?>