|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14351
- 金币
- 2461
- 威望
- 1647
- 贡献
- 1409
|
* k) g8 Q5 V# C4 Z4 c
学习目的:做一个分页显示
8 Q' V' Q& _# `+ x关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num# a5 j4 c5 i [
. S; z! S+ m1 r1 ~8 i5 M对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。0 \0 i( I" p2 Y7 r f8 Z
* Q6 n2 t' _/ L) f! r! k, m# ~
$execc="select count(*) from tablename ";
1 h' K) O, c, T" e3 ]0 G# X$resultc=mysql_query($execc);
$ }* J4 G2 g& K7 B$rsc=mysql_fetch_array($resultc);
/ V+ _: J" C# Q$num=$rsc[0];) v/ H, M) b9 D6 N
; J6 b! V7 t( d6 h# X
这样可以得到记录总数
) s# J$ y/ J5 W( m' Z8 I7 j) Tceil($num/10))如果一页10记录的话,这个就是总的页数
7 |; H* C2 W( Z7 O7 c# o所以可以这么写7 K; O+ l! s& W2 v/ R- I6 G
if(empty($_GET['page']))1 c# _7 y N4 Q# ]! U. Q* I
{" n# g/ i1 Z; x5 @' E5 U; R
$page=0;0 B9 Y9 A9 n+ Y5 ]5 j( Y6 W: R, ]
}+ M, `! K7 \) |1 P
else
% I* o9 A, \( C4 _! O/ b( w{
& s1 S* a' B8 {' S# z* R$page=$_GET['page'];8 _1 x/ `: G8 m) ]5 ~( a: v
if($page<0)$page=0;' B* o! W# i7 r! |7 r
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
. \, m0 O \) i' ?}
6 l/ Q6 I# R+ F8 q( M& w" _& T7 U( ^. U
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";4 S+ y+ j- c) i: E( {
//一页是10记录的
; ]) T0 }% R! R) M最后我们需要做的就是几个连接:
7 _# \+ d" I; M5 ?8 U4 `$ x<a href="xxx.php?page=0">FirstPage</a>
2 ]) \! t4 F# I2 \, @<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 0 K; w. ]& S1 F8 h+ w
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 0 H! U) _* D- N: f& M( p
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
* u4 ]4 e; f# D, C5 ~+ P
s" G" w2 e0 @: Z% }7 R M$ s3 G9 o这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|