  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
9 l7 F4 E4 Q3 N" f" B! I: G学习目的:做一个分页显示. t e# h- H( @
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num- }7 q8 P/ c. {( @
( h- a4 P6 b# P8 C对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
6 Z" O9 A; w2 o7 s3 _: _
8 A5 N n1 w( E- i1 @1 u Y$execc="select count(*) from tablename ";
* Q% [3 v+ B. ~2 [) n$resultc=mysql_query($execc);
/ u: K0 P( s: Y; _" d% Q- [$rsc=mysql_fetch_array($resultc);
" D7 D( Z: g F7 q2 @1 x$num=$rsc[0];
6 a1 @# j# Q3 {, k$ L% ~6 X" @+ g: Y& i
这样可以得到记录总数* ^ A: o# d- C% G5 C: A
ceil($num/10))如果一页10记录的话,这个就是总的页数# ?1 r8 v5 t) w, u/ M( @
所以可以这么写
: ?6 m k* P! v9 _) ?) ~. s1 nif(empty($_GET['page']))
3 P- O O2 P6 c( T' B" a9 u* G8 b{
. n1 @* n2 ^7 {5 c! b$page=0;. u+ V- T' H- T. F0 f3 _
}
) r+ ` W! `8 }% z( O- Q# u D0 Q: Yelse' ?) _" e D/ y9 I
{! b z# O* p* |" S
$page=$_GET['page'];1 L/ p) R. X5 f, Z0 J
if($page<0)$page=0;* Y; p% b- J' x6 |
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
: I/ Y9 }7 C6 N, h} ( h9 {# U* t% r
; m& Y0 p) }# i: q$ B7 O( c这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";8 p3 T7 C: Z Y6 k
//一页是10记录的! t# M- w1 {( o5 I
最后我们需要做的就是几个连接:* p; H/ ~" y2 \# D; L: X
<a href="xxx.php?page=0">FirstPage</a>
7 ~) M8 N3 s' _& M; Y U<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
& g3 ~3 {) a2 @& m& ~<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 7 f6 m* x7 F. X% i& Y5 c
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 h/ V8 V; x) l# S/ |+ m. m8 e# e/ P0 w' g3 p) Z3 m0 Q
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|