  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14221
- 金币
- 2401
- 威望
- 1647
- 贡献
- 1349
|
! n7 F& Q9 J0 |9 F8 G0 v6 J
学习目的:做一个分页显示( y# G: O/ b; Z; M
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
+ l1 d0 i/ M0 \4 ~% I
8 o3 T a2 Q0 L+ Y, y对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& J+ A7 a. m! {3 _' x8 `
( |4 n" I4 |) L% w2 P
$execc="select count(*) from tablename ";+ o/ W! A7 ~; z/ O2 Q
$resultc=mysql_query($execc);
! L6 F" ^, l+ Y$ s, d3 Z) n$rsc=mysql_fetch_array($resultc);
' b' D6 {1 c7 A0 n$ p$num=$rsc[0];
: `; c9 K$ n5 c
- j: J6 v* i0 g8 y3 |1 J这样可以得到记录总数
8 A7 ?7 O3 D: Z( t7 o9 h4 }$ {2 Tceil($num/10))如果一页10记录的话,这个就是总的页数& N$ i" O+ z. S8 L# T/ w
所以可以这么写
7 d; ?* |+ c, k* |if(empty($_GET['page']))
3 N( @' [7 _. u{
" ^# w7 T+ ]! R1 b) P" N$page=0;3 W) F6 H3 N; R& Y0 B- P
}
7 X6 F6 F3 m& U! s& x2 z7 delse4 b8 Q5 D' S" O( Y+ v# w+ ^1 }0 r
{* {: u. J, `6 n; ^' d+ O
$page=$_GET['page'];
& h* P- K2 O* b9 Z# tif($page<0)$page=0;7 c0 n( l# O0 w0 u% l9 w
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
& Y0 d5 W3 | v) m$ x" f+ N1 ~} $ j& P3 s- l1 K& L. a
# Q* C; Y. H4 a" b' T9 K( g, |这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
7 b$ i; L- S# W g0 B//一页是10记录的 l5 V- B! r- }- Z! }! K+ Z/ _( S
最后我们需要做的就是几个连接:/ P! j5 I5 M5 [% s7 r4 g' ]
<a href="xxx.php?page=0">FirstPage</a>
: ~) X0 d: e3 {1 ^7 O+ X+ n t9 P<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
/ d1 J9 O! f$ y<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
0 z- j4 t8 S/ }8 E<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>0 S7 P0 Q" a6 g8 L0 M6 m
% s3 y# p" @/ K5 n& {
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|