2014-11-03 126 views
-3

我正在为我的网站创建一个搜索引擎,其中我希望将搜索结果拆分为包含导航的页面。这里是我的php代码PHP搜索结果分割成页面

<?php 
if (isset($_GET['search'])){ 
    $search = $_GET['search']; 
    $query = "SELECT * FROM search WHERE keywords LIKE '%$search%' OR title LIKE '%$search%' ORDER BY keywords LIMIT 0, 30 "; 

    // connect 
    mysql_connect("localhost","root","") or die("could not connect"); 
    mysql_select_db("search") or die("could not find db"); 

    $query = mysql_query($query); 
    $numrrows = mysql_num_rows($query); 
    if ($numrrows > 0) { 
    echo "$numrrows result found searching for <b>$search </br> "; 
     while ($row = mysql_fetch_assoc($query)) { 
      $id = $row['id']; 
      $title = $row['title']; 
      $description = $row['description'];   
      $keywords = $row['keywords']; 
      $link = $row['link']; 


      echo "<h2><a href='$link'>$title</a></h2> 
      $description</b></br>"; 

      } 
     } 
    } 
?> 
+2

有什么问题吗? – 2014-11-03 01:05:42

+0

@CarlMarkham问题是“有人可以为我做这个”,答案是“是的......”。 – James 2014-11-03 01:46:58

回答

1

我会使用MySQLs OFFSET为此。

步骤1:将页码存储在查询字符串中,例如www.example.com?page=1。无论你如何做到这一点(无论是表单还是仅链接到www.example.com?page=1),但在查询字符串中都有数字。

// Assign globals to local variables 
if (empty($_GET['page'])) { 
    $page = 1; 
} 
else { 
    $page = $_GET['page']; 
} 

// Pagination 
$items = 3; // Number of items per page 
$offset = ($page * $items) - $items; 

上面的代码需要的页码,它应该通过OFFSET多少计算出。

第2步:编写SQL查询

$query = "SELECT * FROM search WHERE keywords LIKE '%$search%' OR title LIKE '%$search%' ORDER BY keywords LIMIT $items OFFSET $offset"; 

第3步:分页按钮:让下一个/上一个页面可以简单的

<a href="www.example.com?page=<?php echo $page + 1; ?>">Next Page</a> 
<?php if ($page != 1) { ?> 
<a href="www.example.com?page=<?php echo $page - 1; ?>">Previous Page</a> 
<?php } ?>