  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14247
- 金币
- 2414
- 威望
- 1647
- 贡献
- 1362
|
$ N" P' P( {2 i, R$ L# a" h学习目的:做一个分页显示* j3 e: G% j0 ]* f& Q
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num6 O0 _' p. C F" f$ c8 G
1 h, O. v1 n7 I& r3 E# P/ c3 ?" |
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。1 V8 f7 M! ?! N4 X* b/ y! |
: `, w; m: P0 z
$execc="select count(*) from tablename ";
: y B8 t y2 u$resultc=mysql_query($execc);
: ?) u9 u, J" l( Z2 u |, C$rsc=mysql_fetch_array($resultc);' T$ u+ E) H7 p# }
$num=$rsc[0];! ]* {. D) m2 J+ \: c
4 p: I. {. a& Z6 G8 Q这样可以得到记录总数; k: @8 ^! R) U4 r: L
ceil($num/10))如果一页10记录的话,这个就是总的页数2 J& w( V |& d( T \
所以可以这么写' }9 E( Z9 O3 V- C* H4 @. {
if(empty($_GET['page']))
+ U$ x3 {3 i6 W' o( T7 E' ^, Z{
; o. y& }, B$ n* W/ F! r9 y8 b$page=0;
% M: ^$ p) K# r- U}
' F% ]5 M Y. E/ G8 Gelse
# r6 H5 i/ t& c2 ?8 M9 S. h{) W9 U n* w( W# w, n, ]8 `7 @# d
$page=$_GET['page'];" e/ g: u; X0 }$ z& I' L( D, {
if($page<0)$page=0;
, j' \8 |3 ^9 f0 \if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1, l# R& j, ^7 n
}
( b0 E/ \) y. P2 d5 n
6 R! v8 h* k' D$ v0 u7 `- x这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
2 R( y; q9 ~1 l5 D1 q7 v. {//一页是10记录的
& q; X2 }% t0 i' {) ?4 q最后我们需要做的就是几个连接:0 ~. Q2 ~- `6 U, `$ x5 _
<a href="xxx.php?page=0">FirstPage</a> 9 |& s, E: b, P6 N$ Q! n- H0 G9 g; @' M
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
6 |, }4 r' i# | ~1 G<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ m9 J ]& @/ B- G: |# A
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>. ~4 c# o `) X1 @4 W4 A; m% u
- i7 B2 |! H$ L这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|