|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14433
- 金币
- 2502
- 威望
- 1647
- 贡献
- 1450
|
8 ?& a: Y% E7 N3 h# P学习目的:做一个分页显示# a* f! d: Y( U$ |0 j1 l
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
9 D! \7 @! @. r& O5 n
4 ~* D8 { P5 r* o# E; r对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
0 L1 Y3 A5 P, l0 d' V9 |# ]1 N; p' ]' a
$execc="select count(*) from tablename ";7 \( k! @* a2 D0 @: V4 @1 q
$resultc=mysql_query($execc);
: a2 N$ P6 W H5 k. K$rsc=mysql_fetch_array($resultc);
( l. R3 Y! K; n& \8 Z$num=$rsc[0];$ d& }) @, c8 }: K( A5 C& R, J* ?( Z1 G1 Q
' V. T; _1 l- c- S# p+ y
这样可以得到记录总数* q' j6 j0 |% Q! n- `
ceil($num/10))如果一页10记录的话,这个就是总的页数
& f1 |9 W a; ~) g' R( g) y. q所以可以这么写
8 e: k9 h' f3 x! J6 _8 ~0 w! Qif(empty($_GET['page'])) N# J$ j5 c- x
{4 m( d$ P8 ~3 H6 m5 ~
$page=0;
9 {! ^; w# A/ b) _}
* k7 @0 l) \; U9 L/ G, Oelse3 a- {/ p4 a+ l* V; h
{( N" [, q$ k+ p( v
$page=$_GET['page'];6 j( k; {; P9 P# A
if($page<0)$page=0;" ]! P/ V2 t3 [8 ~7 V
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1# I9 ^; K3 D! c& ~
}
5 f* H* j: A4 C# W( p4 g3 f: ~, d2 `" D* f" P7 R9 w3 s
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
, D- }5 R7 Y! w- v//一页是10记录的
* K: \" G/ M' g( l2 Z# F. C/ G最后我们需要做的就是几个连接:
) x, i0 E, [2 b+ ?& S+ y# K3 |: U, U0 z<a href="xxx.php?page=0">FirstPage</a>
7 [- v% a& ]: @9 a* H0 J/ P' P<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> + x$ o, b# H' j7 b; E
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> - r1 x$ H" Z: m* J; h" v- G; w/ }6 Y. e9 P
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 f* Q* S1 w" ~6 V! w- S8 H3 n) g( K( r. X! Q# C1 G) J
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|