Click here to Skip to main content
15,887,272 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
PHP
<?php 
@session_start();
include 'connections.php';
$button = $_POST['submit'];
$search = $_POST['searchvalue']; 
if(strlen($search)<=1)
{
$name = $_POST['name'];
//echo $a;
echo "Search term too short"; // when ever I click the next button in pagination the next result is alwaysing showing "Search Term too short"
}
else{
echo "You searched for $search <hr size='1'></br>";
$search_exploded = explode (" ", $search);
$x = "";
$construct = "";  
foreach($search_exploded as $search_each)
{
$x++;
if($x==1)
$construct .="title LIKE '%$search_each%'";
else
$construct .="AND title LIKE '%$search_each%'";
}

$construct ="SELECT * FROM books WHERE $construct";

$run = mysql_query($construct);
$foundnum = mysql_num_rows($run);
if ($foundnum==0)
echo "Sorry, there are no matching result for $search.</br></br>1.";
else
{
echo "$foundnum results found !<p>";
 }

$per_page = 2; // I set only 2 results per page But its showing all results in one page
$start = $_GET['start'];
$max_pages = ceil($foundnum / $per_page);
if(!$start)
$start=0;
$getquery = mysql_query("SELECT * FROM books WHERE $construct LIMIT $start, $per_page");
while($runrows = mysql_fetch_assoc($run))
{
echo $output;
}
$prev = $start - $per_page;
$next = $start + $per_page;
                       
$adjacents = 3;
$last = $max_pages - 1;
  
if($max_pages > 1)
{  
//previous button
if (!($start<=0))
echo " <a href='server.php?search=$search&submit&start=$prev'>Prev</a> ";   
          
//pages
if ($max_pages < 7 + ($adjacents * 2))   //not enough pages to bother breaking it up
{
$i = 0;  
for ($counter = 1; $counter <= $max_pages; $counter++)
{
if ($i == $start){
echo " <a href='server.php?search=$search&submit=$i'>$counter</a> ";
}
else {
echo " <a href='server.php?search=$search&submit&start=$i'>$counter</a> ";
} 
$i = $i + $per_page;                
}
}
elseif($max_pages > 5 + ($adjacents * 2))    //enough pages to hide some
{
//close to beginning; only hide later pages
if(($start/$per_page) < 1 + ($adjacents * 2))       
{
$i = 0;
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($i == $start){
echo " <a href='server.php?search=$search&submit=$i'>$counter</a> ";
}
else {
echo " <a href='server.php?search=$search&submit=$i'>$counter</a> ";
}
$i = $i + $per_page;                                      
}
                          
}
//in middle; hide some front and some back
elseif($max_pages - ($adjacents * 2) > ($start / $per_page) && ($start / $per_page) > ($adjacents * 2))
{
echo " <a href='server.php?search=$search&submit=0'>1</a> ";
echo " <a href='server.php?search=$search&submit&start=$per_page'>2</a> .... ";
 
$i = $start;                
for ($counter = ($start/$per_page)+1; $counter < ($start / $per_page) + $adjacents + 2; $counter++)
{
if ($i == $start){
echo " <a href='server.php?search=$search&submit&start=$i'>$counter</a> ";
}
else {
echo " <a href='server.php?search=$search&submit&start=$i'>$counter</a> ";
}  
$i = $i + $per_page;               
}
                                  
}
//close to end; only hide early pages
else
{
echo " <a href='server.php?search=$search&submit=0'>1</a> ";
echo " <a href='server.php?search=$search&submit&start=$per_page'>2</a> .... ";
 
$i = $start;               
for ($counter = ($start / $per_page) + 1; $counter <= $max_pages; $counter++)
{
if ($i == $start){
echo " <a href='server.php?search=$search&submit&start=$i'>$counter</a> ";
}
else {
echo " <a href='server.php?search=$search&submit&start=$i'>$counter</a> ";  
}
$i = $i + $per_page;             
}
}
}
          
//next button
if (!($start >=$foundnum-$per_page))
echo " <a href='server.php?search=$search&submit=$next'>Next</a> ";   
}  
echo "</center>";
}
 ?>


I done with my search engine with pagination, but pagination is not working properly when ever I click the next button It is always showing Search term is too short i.e in first if condition in search logic. and next Thing is I set only 2 results per page but it is also not working. please anyone help me
Posted
Updated 22-Feb-15 22:41pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900