  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14249
- 金币
- 2415
- 威望
- 1647
- 贡献
- 1363
|
9 a8 \# C% C8 f5 Q( f- q- m学习目的:做一个分页显示" y J; m& a# `) ~5 z
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num! D: z+ U# t( I2 n/ M @
8 M- H7 S& R* S$ o2 k8 F对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, ]- e0 S4 m; @/ D, |
, H1 t& W% Q0 m- I; _' C$execc="select count(*) from tablename ";7 `! ^' _! ?& x/ n( G J+ [
$resultc=mysql_query($execc);
: X$ d6 ~. t3 i$rsc=mysql_fetch_array($resultc);
: N" U! i- Y6 T8 g$num=$rsc[0];
" [7 r: u: ?9 q. h+ y: f
: p7 O: A. o8 k& V+ j这样可以得到记录总数9 L# ` G$ {) }$ t4 o
ceil($num/10))如果一页10记录的话,这个就是总的页数! w, K h! p" l. u6 e
所以可以这么写! {5 @ c% A1 L% t
if(empty($_GET['page']))' l1 Q: q$ i; g, N
{- Z, A& h! R. l7 y8 s3 c1 o: F; q. g
$page=0;
4 y8 j& v* {; O/ p1 ~& z- [6 o" K}" ^$ o5 j$ r2 q: n7 {6 Q
else
) r6 `) X8 Z% {7 F{
* p3 B7 v! `) K- u; i$page=$_GET['page'];
: Q3 G9 ^7 }: }. xif($page<0)$page=0; b7 H. D4 y0 P+ f# Z& c6 t
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
# ]" W6 x" a1 V}
( D; A4 _; y4 w8 N" C) a2 m: {) f1 H* k, ~8 F {
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";# e8 t2 j: ~+ e/ Q# Z$ L- {
//一页是10记录的0 p( X4 A& B' W- N
最后我们需要做的就是几个连接:1 S. h$ _8 m- S5 V& r5 A
<a href="xxx.php?page=0">FirstPage</a> 4 m" D5 T; @9 }+ e9 v0 _
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 4 s/ q1 s& v7 b: C1 j! s1 ^
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
1 o0 E% R8 Z# i: }& I4 v& @& R4 v<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
' j. P8 e% E( j$ W) S
7 Q; z: \! Q- |2 R6 w' R这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|