2014-11-03 152 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 } ?>