2017-05-17 34 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