|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14325
- 金币
- 2448
- 威望
- 1647
- 贡献
- 1396
|
! A; Z* W2 |0 ^& w$ s
学习目的:做一个分页显示0 w8 o: X% z# Y- @0 z. X
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
7 u6 a! b5 R/ x1 E
9 R3 Z0 F( w; F2 ^对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
3 L! c+ |4 `: |) G$ D: p p s2 N9 n5 e
$execc="select count(*) from tablename ";
6 U; |8 ?3 U2 s( a: g' m$resultc=mysql_query($execc);5 o# }. o6 \ S& o4 Y4 ~
$rsc=mysql_fetch_array($resultc);
) ^2 `& `. @' W# x* U4 C& F$num=$rsc[0]; g- R& L7 l' O3 e0 F3 f& z! B& v
5 N7 S6 ]; v! Z
这样可以得到记录总数
2 _! L3 A9 I% x+ {8 mceil($num/10))如果一页10记录的话,这个就是总的页数* M$ r4 G2 T$ {' \0 o9 Z
所以可以这么写
4 E8 }2 A9 a8 v. w6 z' O/ Dif(empty($_GET['page']))
5 m' ~, E7 P7 ~" m{3 G/ I; L s& M& s
$page=0;
5 `% C! ]6 Y# y% A; b% P}* m! ?& v6 I* F; W9 S. ]: z% K
else T: K& _$ b! a! [6 ~, A6 [
{
5 |! D# f& w7 P/ v9 w/ z0 \$page=$_GET['page'];( J% L% p. @2 n6 N+ c9 f/ Z
if($page<0)$page=0;+ i# R5 K" ~* Z, M
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1- ~5 N# \- C; g; r! |9 m. T5 s
}
$ E) m L/ `, ~! |: }4 t; j2 M; I4 s9 @
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
6 ]4 w J: P+ d1 t1 n" s3 Q$ z! e//一页是10记录的# A! t8 I* R% G' F" r4 V% [5 y
最后我们需要做的就是几个连接:
3 V( g9 | u# Y B) A% c @# X2 b# |<a href="xxx.php?page=0">FirstPage</a> " m1 [ N* G. U
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
9 P; ]# I9 X& q<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
2 C4 ^, F; E8 }9 s# s6 v: m+ a( x% q<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> d9 b2 W4 N/ C* `6 N+ A o
* B1 e4 B# h8 f9 [0 Y, D& d
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|