Hi everyone, I am trying to implement pagination in my search engine and am getting an error. Can anyone point out what is wrong in my code? Any help would be greatly appreciated. Thanks.


Here is the code, error is:

( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\search2\search.php on line 44

<html>
<head>


</head>
<body>
<center>
<form method="GET" action="search.php">

      <input type="text" name="search">
      <input type="submit" name="submit" value="search database">
      
</form>
</center>
<hr />

<?php

if(isset($_REQUEST['submit'])) {

       $search = $_GET['search'];
       $terms = explode(" ", $search);
       $query = "SELECT * FROM oldsaybrook WHERE ";


       $i=0;
       foreach($terms as $each) {
        $i++;
        if($i==1){
             $query .= "name LIKE '%$each%' OR address LIKE '%$each%' LIMIT $start, $per_page ";

        }else{
          $query .= "OR name LIKE '%$each$' OR address LIKE '%$each%' LIMIT $start, $per_page ";
        }
       }

       mysql_connect("localhost", "root", "");
       mysql_select_db("wfl_rest");

       $per_page = 10;
       $query = mysql_query($query);
       $num = mysql_num_rows($query);
       $pages = ceil(mysql_result($num, 0 / $per_page);
       $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
       $start = ($page - 1) * $per_page;



       if($num > 0 && $search!=""){

           echo "$num result(s) found for $search! <br />";

           while($row = mysql_fetch_assoc($query)){

                $id = $row['id'];
                $name = $row['name'];
                $address = $row['address'];
                $url = $row['url'];

                echo "<br />$name<br />$url<br />$address<br />";

           }


       }  else {

               echo "No results found";

       }





} else {

  echo "Please type any word...";
  
}

     $prev = $page - 1;
     $next = $page + 1;


     if(!($page<=1)){
     echo "<a href='search.php?page=$prev'>Prev</a> ";
     }


     if($pages >= 1){

       for($x=1;$x<=$pages;$x++){

         echo ($x == $page) ? '<b><a href="?page='.$x.'">'.$x.'</a></b> ':'<a href="?page='.$x.'">'.$x.'</a> ';

       }
     }

          if(!($page>=$pages)){
          echo "<a href='search.php?page=$next'>Next</a> ";
      }



?>

</body>
</html>

Recommended Answers

All 3 Replies

Member Avatar for diafol
$pages = ceil(mysql_result($num, 0 / $per_page);

That looks freaky.

0 / $per_page

will give you a value below 1, so which record were you trying to retrieve? is this what you want?

$pages = ceil(mysql_result($num, 0)/ $per_page);

But $num should be the result resource - check out the php.net manual on mysql_result.

$pages = ceil(mysql_result($num, 0 / $per_page)); You are missing a close parenthesis, causing the syntax error.

Member Avatar for diafol

You are missing a close parenthesis, causing the syntax error.

Indeed!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.