获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天

: B4 f8 S5 k/ a; t' u- i- J3 y$ M
学习目的:做一个分页显示9 a! ^$ Z, I5 Y" z" {8 E, V/ b
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
+ y5 B0 U+ @4 y" d1 N& ]% [7 a/ c+ {( i3 x* J( V1 A
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
3 ^; a. {' A7 m! e4 T' O8 e
/ }% G6 s0 {8 R6 V
$execc="select count(*) from tablename ";0 p5 ]7 P, u( V( \- _* h+ w
$resultc=mysql_query($execc);4 z8 T9 W! C1 }/ {* g# y: W& M
$rsc=mysql_fetch_array($resultc);
/ y3 g3 j4 r) x% g0 x$num=$rsc[0];
- t4 P3 Z0 L# n$ Q$ p  @5 U! j1 H& p3 O* ^1 u: u' d
这样可以得到记录总数3 I2 n+ V8 a$ S) G8 f. w( w0 W- v0 b
ceil($num/10))如果一页10记录的话,这个就是总的页数, s2 O  K4 @. _9 o5 E
所以可以这么写
5 k# x- D5 Z9 |* ~if(empty($_GET['page']))
7 }5 _. f( R# _- \! t{
5 t% {; x& h: R: o$page=0;3 P% m* x- ~7 ^' D( N) J6 |
}
: P, p& n2 J* q6 u' Qelse
$ W8 c/ v: p. a) z/ a& @+ s& I. @{
4 `! \0 w) E4 c/ ^2 }0 d+ A$page=$_GET['page'];- l' d- X; g9 p1 @/ U1 w) N0 C
if($page<0)$page=0;
- N% `% k8 i: \/ iif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1# f( r$ e9 X# t1 g+ x" M! `/ U
} # K3 X9 C$ d6 N/ o8 ~! [: v3 t

$ p, E. O( u/ r9 y这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
, p- S* k6 z3 w0 B//一页是10记录的

, p& T2 O$ U* c' [" X最后我们需要做的就是几个连接:  C: v+ O# M$ h# O+ @0 V+ A
<a href="xxx.php?page=0">FirstPage</a>
0 q- J# Z6 F1 {) ^4 W<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 5 k6 U# _" r$ M
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
6 u, ?7 s" {: _) H. ?<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
7 K$ ]3 m: n1 F* O2 R
6 |& X) D4 {9 W
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: