  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14249
- 金币
- 2415
- 威望
- 1647
- 贡献
- 1363
|
& V1 @( r l3 `" S3 N0 N, `- ?2 h学习目的:做一个分页显示/ A, {* s" f+ J* E7 u. V0 e# z, ^
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num% G1 d& | r: K9 Z; ^+ t
) ?6 z3 a: `" Y- `8 _2 K9 u
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
1 g) b# a8 a: R0 a$ B2 `
7 I! D9 S1 v! B* ~. q1 _5 _$execc="select count(*) from tablename ";" F% J) R5 X7 ~3 F7 \
$resultc=mysql_query($execc);
- W5 @6 M; R# V$ n: l ^1 P1 k3 H$rsc=mysql_fetch_array($resultc);& w# |4 X9 W+ P9 c1 k" \
$num=$rsc[0];
7 a2 C+ I4 e; b4 @) v( F3 q$ ~3 H! W: _6 D! O
这样可以得到记录总数
' p% a" p+ S9 U" oceil($num/10))如果一页10记录的话,这个就是总的页数
8 |- n- d: b7 L- V- Q1 o所以可以这么写" _0 t' [& s" m6 j8 z: d6 v
if(empty($_GET['page']))2 _# c8 k7 G# @; \4 g* M" G% q
{
+ R# }2 |- h D% d7 P3 B$page=0;
- f. K" ?* v: ~}
; [+ d7 R0 L3 `' Welse
3 h) t7 i j* x% P4 f: L% F8 {- B7 N{
& g* T5 m" D+ }' ^3 u4 J _8 q$page=$_GET['page'];4 _" C, X# _$ z- ^1 \
if($page<0)$page=0;1 k6 b0 S: v. T2 x7 c
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-15 \+ d8 l- \7 O; R: P: k/ \, T
}
# t6 Y" ` E/ F" j6 R# [6 Y# q; S4 }# J' Z5 t' D( d
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";' {9 i; [; L( O2 r, N$ q
//一页是10记录的 B/ l( Y8 E& m/ p6 |0 @- x: F
最后我们需要做的就是几个连接:
1 e* X0 Q" q- M! O3 w# c<a href="xxx.php?page=0">FirstPage</a> 1 W8 z) E* L* q! Z7 N! j
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 8 Y2 G/ f- B8 B
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 8 X8 A) M7 R! z' [- Y' q y
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
8 `3 r- o6 [/ j0 E! C* a3 T4 M' x5 X$ v
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|