  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14163
- 金币
- 2372
- 威望
- 1647
- 贡献
- 1320
|
1 {( q" R0 R; v |" ` t4 s学习目的:做一个分页显示' R& _; g9 j' e
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num2 V: `( @2 }. I3 W
I: a1 J8 {( B: R
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
4 Y$ ?! E. a3 h* t [. B, c7 Z
/ C5 m; j0 M$ k/ P$execc="select count(*) from tablename ";8 c% V, a& |& H4 ?& n: r. A. H; Y- ^
$resultc=mysql_query($execc);. H9 |4 n8 z+ G& B3 S
$rsc=mysql_fetch_array($resultc);3 V$ M5 e* U3 S4 D( H
$num=$rsc[0];; @1 w' p: ]! z) h. F3 X2 V$ M$ ?
9 |9 u! i4 B8 D( X* }1 A这样可以得到记录总数1 i y0 }* _8 e# z
ceil($num/10))如果一页10记录的话,这个就是总的页数
$ h* I# y H) k5 J' l& u所以可以这么写
. h$ b! `/ b% H0 r9 rif(empty($_GET['page']))- O% T" Y0 w! ~* i1 q
{
8 Z: i: d5 q% S$ A$page=0;
3 r$ y4 N9 U- [3 z. M& [7 `" r. j}) u1 E) ]7 o7 W* n; e
else2 U. n+ C% b' M, H
{6 f W* X% O- B' K3 J8 D1 I, C
$page=$_GET['page'];* W( c# a7 p, s( M; @
if($page<0)$page=0;# g+ ]% s. U* _) P- ]& O
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1& Q8 ]3 s2 g; o! I
} ' ?5 q7 k$ W1 _# M+ S9 H) c2 \
% s" V! G) j0 _% j* {/ V& Z
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
. \( Z: j- S1 k9 Q0 B//一页是10记录的
) k" w3 h3 Q X$ X5 L$ b: E8 b- l9 j+ g最后我们需要做的就是几个连接:6 G" B$ t5 L% }
<a href="xxx.php?page=0">FirstPage</a> 1 t% \6 m5 ^/ `: V% a
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 2 U# i7 W' R- w/ t8 n6 K( X
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
! |& E l# t9 a0 w% [<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
: c2 ?; O" w, c! a, u+ m, E2 Q f5 i3 I
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|