  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
0 e+ C% H- K; @% n) Q" H
学习目的:做一个分页显示0 x/ b" D# b" ?0 W3 e) Y) @2 M+ v S
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
8 f- B7 ~# B6 [' X4 F& `- }4 R9 {3 l/ \6 k" }! U' c9 t4 N
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
. J: t1 P1 r) T% b6 d" ^# p
, \# z, B( \. i/ i$execc="select count(*) from tablename ";9 X- t- i) I4 R) |, [
$resultc=mysql_query($execc);
' h0 s) k* t; e9 h$rsc=mysql_fetch_array($resultc);7 I( v* v6 O8 H/ U* v
$num=$rsc[0];4 D# B/ n! m* k9 X4 B
; `6 B, M8 D5 h
这样可以得到记录总数
! v6 T* \& E3 u0 B/ a( yceil($num/10))如果一页10记录的话,这个就是总的页数
4 _- u- [! B1 x+ c U/ D所以可以这么写# Q5 H; {- B- @: }5 x
if(empty($_GET['page']))
# |- ^; h5 k( Z$ ^{/ k- \' e5 k9 Y9 t8 m7 c
$page=0;' Y3 H( Q4 K# T" H
}
2 h E1 n6 h- V# S4 Melse
4 c) @8 l: V) i! b{5 ~8 ]+ s+ D0 W+ {+ ^3 |9 V- I4 h2 A
$page=$_GET['page'];
! h2 F/ n, B7 O# ] y6 {9 U% Uif($page<0)$page=0;
6 \7 O6 T, @- M* vif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1- ^+ J2 R) N8 x" H# N* o
}
! T8 F/ Y* y' {$ w8 q. A, n+ j3 U/ L F" u
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
: J( u) y a$ U; `7 h; N' B( v' L//一页是10记录的* m- U" f* Y) c
最后我们需要做的就是几个连接:2 S. S" P$ _9 O* Y
<a href="xxx.php?page=0">FirstPage</a>
/ a& U9 U8 s$ e$ m! _<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
- u$ q2 x- q5 b<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
2 D8 O, v& `8 o2 H" `* {' z<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
- b: @! d4 b1 H. E9 F* {& Y3 ]4 X9 }- |6 x+ g$ N0 A
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|