PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项。
要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7。PHP分页代码核心就是围绕这条语句展开的,SQL语句说明:查询goods数据表从第2条数据开始取出7条数据。在分页代码中,7表示每页显示多少条内容,2通过公式计算表示翻页数,通过传入不同参数替换“2”的值,即可筛选出不同的数据。
index.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
include 'conn.php' ; //引入数据库操作类 $conn = new conn(); //实例化数据库操作类 $total = $conn ->getOne( 'select count(*) as total from goods' ); $total = $total [ 'total' ]; //goods表数据总数据条数 $num =6; //每页显示条数 $totalpage = ceil ( $total / $num ); //计算页数 if (isset( $_GET [ 'page' ]) && $_GET [ 'page' ]<= $totalpage ){ //这里做了一个判断,若get到数据并且该数据小于总页数情况下才付给当前页参数,否则跳转到第一页 $thispage = $_GET [ 'page' ]; } else { $thispage =1; } <br> //注意下面sql语句中红色部分,通过计算来确定从第几条数据开始取出,当前页数减去1后再乘以每页显示数据条数 $sql = 'select goods_id,goods_name,shop_price from goods order by goods_id limit ' .<span style= "color: #ff0000;" >( $thispage -1)* $num </span>. ',' . $num . '' ; $data = $conn ->getAll( $sql ); foreach ( $data as $k => $v ){ echo '<li>' . $v [ 'goods_id' ]. '、' . $v [ 'goods_name' ]. '---¥' . $v [ 'shop_price' ]. '</li>' ; } <br> //显示分页数字列表 for ( $i =1; $i <= $totalpage ; $i ++){ echo '<a href="?page=' . $i . '">' . $i . '</a> ' ; } |
上述代码实现了一个最简单的PHP分页效果:
仅实现点击翻页数字显示不同的翻页数据,可以在此基础上进一步完善,只要基础原理理解后,后续工作就比较容易开发了。
conn.php代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/* *连接数据库 进行相关查询操作 */ class conn{ public function __construct(){ include_once ( 'config.php' ); try { $this ->pdo = new PDO( 'mysql:host=localhost;dbname=test' , 'root' , '123456' ); $this ->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this ->pdo-> exec ( 'set names utf8' ); } catch (PDOException $e ){ echo '数据库连接失败:' . $e ->getMessage(); exit (); } } //获取一行数据 public function getOne( $sql ){ $rs = $this ->pdo->query( $sql )->fetch(PDO::FETCH_ASSOC); return $rs ; } //获取多行数据结果 public function getAll( $sql ){ $rs = $this ->pdo->query( $sql )->fetchall(PDO::FETCH_ASSOC); return $rs ; } } |
conn.php功能是完成数据库连接,并实现取出数据操作方法,这里我使用的是pdo,这里可以根据大家习惯来组织代码。
config.php:
1
2
3
4
5
6
7
8
|
/* *配置数据库信息 */ $cfg_dbhost = 'localhost' ; $cfg_dbname = 'test' ; $cfg_dbuser = 'root' ; $cfg_dbpw = '123456' ; |
该例子仅是为了说明基础的分页原理,距真正使用还有很多修改地方。