  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
R2 n' l) g4 d! ]( I/ u
学习目的:做一个分页显示
Y; _. I- G( E) `8 B( A+ y, t关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num. U% \' ?, s X. e
$ I1 P% ?' z1 l, D$ R
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。% X; Y% H: d6 Q$ j; ]! ~
, f5 L( G4 [% K; I( u6 u- l$execc="select count(*) from tablename ";
' f$ T) n6 \% Q7 B' Z1 Z7 A$resultc=mysql_query($execc);$ N% n: Q* Q" i9 g: J
$rsc=mysql_fetch_array($resultc);
1 `' T% u3 e2 ?$num=$rsc[0];
# o+ L1 j! _( I6 p1 o5 }3 | t2 {. e0 w: m$ Y o( |
这样可以得到记录总数) T y" w1 H! r# ]# X+ t
ceil($num/10))如果一页10记录的话,这个就是总的页数
7 s# J; Y! d3 s/ r所以可以这么写 [7 c- a4 U% H/ @
if(empty($_GET['page']))
4 s! B& _5 t+ @6 G% |/ o6 L{6 M9 T; Q8 @1 C6 ~2 O$ S
$page=0;. u* V" @* ]& Y" y, |0 E
}
/ o5 Z+ k. B' @else
& |8 S; s4 J* J* w" S{
X0 V3 T: l+ P2 `; S$page=$_GET['page'];7 P3 H5 Y) p- z1 O5 Z$ w F
if($page<0)$page=0;
- A' b* q6 V4 ?4 d, \* nif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
4 c; a' C9 c: G8 h" f/ }}
$ o# j( e9 j8 C% g- p& `0 ~1 P) P* m2 H
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
/ r+ f6 K& S$ u8 l: N0 W//一页是10记录的
5 w" P3 e6 O+ U# e+ R n" ]最后我们需要做的就是几个连接:
6 a7 z" d) e. s& }6 n# N4 ~/ a* _<a href="xxx.php?page=0">FirstPage</a> 3 q* ]0 q1 l- U4 @
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 9 G9 H& h( j- u0 c
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
8 U# Y' A3 p$ M0 ]<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" `& `' Q& d( z h8 l# D! }0 [9 T5 f6 y
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|