  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14171
- 金币
- 2376
- 威望
- 1647
- 贡献
- 1324
|
4 g& L3 r6 I5 Y2 W6 b% M学习目的:做一个分页显示! b% h# g+ y' ~# X
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num4 y( h: o2 r1 j0 I1 X3 ^* X" n$ ~
7 j$ {" v- M5 b8 f, B. w! q
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
9 K3 ~4 O8 j; c4 O, H: ^9 g2 }
9 v: V/ J$ u$ B/ y( [. m$execc="select count(*) from tablename ";. J. l/ ?5 {+ {+ v4 f% }4 f1 Z
$resultc=mysql_query($execc);
! I5 w/ ]5 _+ P' z# q. u C$rsc=mysql_fetch_array($resultc);( V7 E8 k. p! m* q
$num=$rsc[0];
' w4 S& ], t/ Z3 Y
( s+ k! B; K3 J* \/ N' M+ f这样可以得到记录总数3 G' k, {8 U8 ^! _+ l: ?7 E- R
ceil($num/10))如果一页10记录的话,这个就是总的页数: ^6 m( F: I& c& }, Q7 h
所以可以这么写
5 F4 y& y. q4 Y6 \# Qif(empty($_GET['page']))
) E9 h# u" d2 h0 N) S2 `2 D{2 m# Z) i, Z4 H$ ]( B& L8 n Y
$page=0;
, G& J& `, \% X$ T) r9 w) U}' W# ~( d1 e* m- b
else
+ o" N/ B% ]: P1 I9 V+ q# i{
) \' W) t2 ~ c9 g0 i/ D$page=$_GET['page'];
; ?+ |' t1 ^4 a6 U+ g1 Pif($page<0)$page=0;& I* U: j( e+ j3 D3 H# K
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1$ I3 D5 P* N2 ?
}
" f( q$ }+ p! N% w) g/ _
4 F/ m/ p: V) Q% r0 {/ U; e这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
- l5 z# \7 b& [5 Y0 z& Q; V//一页是10记录的+ S8 h0 H1 R% F4 z
最后我们需要做的就是几个连接:- E! ~; H+ t' b* s( R3 o# u6 J5 j
<a href="xxx.php?page=0">FirstPage</a>
}6 s! ^) F! b r B+ i<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 2 r/ M' ~3 Y' Z( @
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
0 c' `1 b3 g/ B5 I; m$ X<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>* [: e! h" q$ ^) Y9 D
" X0 L( l3 t$ X' G3 R: v1 M% R, M6 @这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|