标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
2 W3 |. A+ p( m) f
学习目的:做一个分页显示
Y2 P2 E2 O* C5 i8 @* m
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
, ?7 Z; m# y7 U1 w8 N
, z: w9 ^, N7 F" Q2 p& z
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
' f9 H1 S+ \4 F. g- I
# x. k$ [& x, l1 E# S
$execc="select count(*) from tablename ";
$ K+ b/ [$ ]2 ], K
$resultc=mysql_query($execc);
% x2 a( U, N* U+ D$ K5 A
$rsc=mysql_fetch_array($resultc);
9 m4 d7 j+ } b
$num=$rsc[0];
9 v9 \! L9 I D: T2 n
& N! [; `3 z F3 [
这样可以得到记录总数
( _+ j6 e: J# {4 t
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
6 W1 n: ~ q# D. K/ @
所以可以这么写
7 G4 x) Q: v! \) J5 x, b3 X
if(empty($_GET['page']))
4 h$ ~/ K/ i* E8 L1 F3 p
{
: i6 y6 l. \4 D+ M# t4 r7 \2 j
$page=0;
3 m* {" ?7 g8 f# f7 D( m
}
W1 [5 B2 f E! T1 h) _* [
else
! H# l4 _3 Z6 A7 H! L
{
: Z3 P$ ]$ N3 a" r( q
$page=$_GET['page'];
3 I0 e& k$ ?7 J0 U8 l+ O6 `' J$ B
if($page<0)$page=0;
$ b4 P8 \; c- w
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
: n1 k% ]5 x% O: \5 X1 W r% G* W
}
' U- {# j9 @) u5 y* H% Y! s
3 ` H. y8 N0 L. Q
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
. u5 F% W6 y7 Z: ?/ v) O1 y
//
一页是
10
记录的
/ S/ m/ |- l/ P) \3 \+ d$ d: `
最后我们需要做的就是几个连接:
% S8 O# j' `& h7 e! l
<a href="xxx.php?page=0">FirstPage</a>
& ~/ Y- _6 H( B8 c; h
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
) v9 O, b% S/ A1 |! ~6 G
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
6 I0 E+ p. V6 B9 u! h- t1 O2 V
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
* K( x) k& F( p3 ]2 \$ ^# q. d
5 Z2 l# c4 X/ `2 n' R
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2