2017-05-17 61 views
0

我嘗試了4天關於製作分頁系統的搜索,但我無法理解因特網上的任何代碼,因爲我是新手。如何使用PHP MySQLi製作分頁系統面向對象

這裏是我的代碼:

$sql = "SELECT name_id, name FROM TABLE WHERE tag1 in ('$tag1') OR tag2 in ('$tag1') $andor tag2 in ('$tag2') OR tag1 in ('$tag2') ORDER BY rating desc LIMIT 5 OFFSET 0"; 



$result = $conn->query($sql); 

分頁的html代碼:

<div class='pagination'> 
     <a>1</a> 
    </div> 

我不知道該怎麼辦。你能向我解釋這段代碼嗎?

+0

的可能的複製[PHP分頁與庫MySQLi(http://stackoverflow.com/questions/26041382/php-pagination-with-mysqli) – GilZ

回答

0

首先你需要計算記錄的數量,以便計算頁數。

$row_count = $con->query("SELECT count(name_id) FROM TABLE WHERE tag1 in ('$tag1') OR tag2 in ('$tag1') $andor tag2 in ('$tag2') OR tag1 in ('$tag2') ORDER BY rating desc LIMIT 5 OFFSET 0";"); 

現在你可以計算(如果5你想顯示每次5結果)的$row_count/5的頁數

那麼你生成你需要創建一組鏈接的頁面上調用相同的頁面,但具有不同的頁碼

<a href="/page.php?page=2>2<a> 
<a href="/page.php?page=3>3<a> 
... 

,那麼你需要使用page值作爲查詢的偏移。

$offset = 5*$_GET['page']; 
$sql = "SELECT name_id, name FROM TABLE WHERE tag1 in ('$tag1') OR tag2 in ('$tag1') $andor tag2 in ('$tag2') OR tag1 in ('$tag2') ORDER BY rating desc LIMIT 5 OFFSET $offset"; 
+0

很好的解釋,非常感謝的人! –

+0

等等,他們在我的腳本中沒有任何$ con-query。致命錯誤:未捕獲錯誤:調用C:\ xampp \ htdocs \ Website \ db.php中的未定義函數query():48堆棧跟蹤:#0 {main}拋出C:\ xampp \ htdocs \ Website \ db.php on line 48 –

+0

我沒有寫出有效的PHP代碼,我只是試圖給你一個關於如何實現你正在尋找的基本概念。在上述情況下,您需要將查詢放入準備好的語句中,然後調用查詢 – Rabin