  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
% s8 B+ a' Y m; }
学习目的:做一个分页显示- C8 }2 j* B, O* y! C; C x
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
/ Z3 Z( n m8 {& W4 g8 {8 x
9 g$ W% Z1 X e( L0 N$ P对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
2 L- v$ k6 F0 ~/ o
) ~2 O# l W: c$execc="select count(*) from tablename ";
% X( ^! K- _8 @: V2 V& A+ ?+ A$resultc=mysql_query($execc);/ p/ v' [; U% ^3 p' q b& k3 Q+ V
$rsc=mysql_fetch_array($resultc);
1 Z. z5 ~6 A6 F$num=$rsc[0];
% M4 Y i# O8 s7 c( G: Y4 t' Y. {( H+ U( X, P' y" n, \2 q0 P5 q% m
这样可以得到记录总数" ]" { [' d& B2 E0 L3 \
ceil($num/10))如果一页10记录的话,这个就是总的页数
3 e4 t9 N) K$ u* M所以可以这么写' i) ]' X& S& c" B
if(empty($_GET['page']))
! A) `' g2 F% S5 }( _{- f% F% n f( C; I6 Q, L6 @
$page=0;
2 u3 H/ Z4 I3 U! }3 U! E}
* z. N5 n7 Y1 j, D- [9 |else6 o: l: T3 C5 v
{& B( m! O- f( Z3 i1 x
$page=$_GET['page'];; R, R% }8 B$ K1 ^" Z3 C
if($page<0)$page=0;# ^* L* t6 F8 ~* r
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-10 n. R) X \& `$ n/ N, K
} % t. v: j' a2 }9 n' S/ t& Z! s
$ k+ l9 _9 U/ y1 d# c" X
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";. d2 {# P5 a, l p
//一页是10记录的
" B: ?' c- v. D# R4 i# r6 G最后我们需要做的就是几个连接:8 c, u1 B. Y9 _% E( n6 G
<a href="xxx.php?page=0">FirstPage</a> 9 Z- a; M' O. V* Z
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
( a8 X( ^0 E0 n* Y, i1 _5 E+ T<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 2 r8 a; v l u
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>4 @( b/ ?: Q6 w' T8 \+ ?
8 Q9 u( _7 a. B X; B3 T* W: w
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|