  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14161
- 金币
- 2371
- 威望
- 1647
- 贡献
- 1319
|
, H$ q% C+ S! P1 c5 w
学习目的:做一个分页显示
# w. k$ B3 O2 s+ }& K0 N: H, \关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num! k2 H: [& }8 U! S7 p: b
7 l' }" y. {8 z: I
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
: G% V0 s0 I5 W6 ?, x5 n0 r9 M% b+ N- ^0 J7 g, W a* ]: r [
$execc="select count(*) from tablename ";
6 q+ Q( O, K( h5 y$resultc=mysql_query($execc);
8 f) R( [- v. m% l$rsc=mysql_fetch_array($resultc);: D0 @9 [+ {) D7 I& f) Z$ P3 x$ p
$num=$rsc[0]; Y) q5 y2 x/ H. `' L9 _9 d( m
7 ?7 G* l7 b2 J) c$ J这样可以得到记录总数
2 U- M5 u' J9 o+ _) Cceil($num/10))如果一页10记录的话,这个就是总的页数
z2 ?, j" Q5 ?" y, F7 d- J所以可以这么写
& `0 H0 \6 e4 t* h$ }8 C/ c: fif(empty($_GET['page']))
# B0 T0 k! s' F( L E' e) ?{ l# T9 l1 o" S7 \) v" B1 e/ D
$page=0;
O7 A/ p T; z; L+ r i1 {6 |}" ^; B# H+ V q3 p7 V
else
+ z( N/ B$ R2 w1 A) x* ?% l{
3 R1 y* D' Y- {. r R, p$page=$_GET['page'];' p" v6 C6 K6 @4 J2 o; z1 o [% W- h
if($page<0)$page=0;
' P N+ _7 s$ S: lif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-17 e& M5 F: o4 G' Q7 K8 k
}
. @1 Y; a _4 d( f, e
) D0 y0 W) G* c1 k% A这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";/ p) h- v! Q% M( Q$ H+ u5 x1 ?1 P
//一页是10记录的 G+ B3 h" p; f5 h' t
最后我们需要做的就是几个连接:3 e2 E. n* o6 s' }5 K' o8 f2 C
<a href="xxx.php?page=0">FirstPage</a>
+ k4 j$ Q1 N0 \! _ G<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> / `" c4 F$ V i) r, a& q0 u
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
: w4 Z! _; W! J4 e3 ~- s! y8 a/ Q<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>3 R* _- A/ t( m0 c: ^! i
0 I( q+ i5 E6 m9 N; N! w6 p& B- i这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|