  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
1 _; \% u- V# h: z) Y2 H# O4 j9 X
学习目的:做一个分页显示! `- J0 ?, ]9 p0 M( T
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num6 r) ?9 b5 V0 q/ n, [
; V8 x4 d) ~9 {, e/ K- Z% H+ q: X' R( O对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
- J) i) Y/ h$ e$ y8 P% N+ o5 z0 B# K. }" ]7 n" R- b# w
$execc="select count(*) from tablename ";
6 t" A( {/ y- t9 p! h% B7 i$resultc=mysql_query($execc);
3 q4 G; C+ d. }2 M$ E' { Q! g$rsc=mysql_fetch_array($resultc);
0 M4 y9 ^3 ^) N! u0 j7 q" V$num=$rsc[0];7 N/ w7 d# z/ p8 T
3 y: ?; o9 y7 S3 g9 o0 l2 \# j5 d这样可以得到记录总数: h7 W, {5 ~- m* `2 _5 f9 }
ceil($num/10))如果一页10记录的话,这个就是总的页数
. @3 D+ H9 Q1 c- h* B& a所以可以这么写
/ n0 P' }/ i2 g+ y+ nif(empty($_GET['page']))
# t) T( `' w- i5 Z s0 O{) v, \2 L2 g$ [5 I$ Q
$page=0;" u' E, o4 o- M x
}
5 W7 ]; J; s$ G0 h; O5 U1 T# m7 _. lelse' A8 P' \6 M% V7 u0 s& X4 Y* ?
{
& Q3 S5 E+ o \( o! Z$page=$_GET['page'];
- }0 P L1 D, f) p, y0 ?/ f7 k9 Qif($page<0)$page=0;
1 i2 ?1 M2 H+ O; f' Qif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-19 `- @9 {4 e7 q) q( @0 \
} % t# a" G( N/ S9 a% z
5 W/ s. ]$ s: f9 F: j( V) h3 C这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
- R. F& a7 }* B. n* D. S//一页是10记录的
0 y* I6 k# k* w- t _) r( \最后我们需要做的就是几个连接:
$ C }" S6 b. A<a href="xxx.php?page=0">FirstPage</a> . d. N4 T5 B# a9 p g' H6 U7 m, d0 U3 K
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
$ A5 D _4 h! ]1 B2 `3 W<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
# a8 T. ]- `* A6 a( _/ O<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
! U" {6 D" ?# ? D3 {8 V
" f0 J0 c7 s6 ~这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|