  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
$ O; S8 f, E& r( a( z/ e学习目的:做一个分页显示
# F6 b; z5 Z1 b4 B7 l& t关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num% ^( J1 f6 K; B; X: r+ o' O" d# J* ]
8 l1 m/ ~* E$ a- s对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。' e6 c$ _+ X2 h4 U1 \
5 h# q' t+ C& n! S" \& j$execc="select count(*) from tablename ";8 {0 Z; D A# t2 Y; @: o& \% z
$resultc=mysql_query($execc);2 |: W# w3 U# X3 E$ F( u" ]
$rsc=mysql_fetch_array($resultc);, t- r7 Q% i: u4 a8 I1 W# |
$num=$rsc[0];6 V3 {/ h8 G; Q3 g0 q) S
" r4 ?+ O# d& X
这样可以得到记录总数5 O, V* R# i- i8 r' @; }
ceil($num/10))如果一页10记录的话,这个就是总的页数( Z& f! w: R2 C" E, q
所以可以这么写0 N% [- t5 e1 \ t8 L; I. s
if(empty($_GET['page']))
; `+ {9 \7 D! ?6 c{& [2 O n7 Q; h1 h' O
$page=0;
]3 m u, s: ^: Z# L% f& W! U}
& ~: K5 R' h0 Z- d* i4 I) Xelse
+ X# e7 e4 }2 o; V& @' b7 h# b{$ I2 Z* L5 O! g0 X
$page=$_GET['page'];
" ^, x; K) G) c: \if($page<0)$page=0;
O1 D$ q" }7 p* ]if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1 {+ u. h; A: C( E# i; U+ R
} & K% h! I4 E8 i, Y- M
0 o9 w7 N4 }& ]$ {* X7 ?3 W3 X这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
; I: z% h. T! x H: |//一页是10记录的8 L, C O' t5 i+ I1 i5 T' }2 b& \& P9 L
最后我们需要做的就是几个连接:' Y$ a# }7 |) u v; V+ N0 g" a
<a href="xxx.php?page=0">FirstPage</a>
8 I6 b2 C/ |' Q* i6 S& L<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* C8 Y2 N/ f- P( C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 3 h* K5 s' K! q; \% J
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>' ]1 |6 j, K) ?! X
; |* a v d$ W' `7 V+ n
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|