|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14433
- 金币
- 2502
- 威望
- 1647
- 贡献
- 1450
|
; {" N! T: s$ |# i: N1 F$ y学习目的:做一个分页显示" Y% q) G; R; c; I5 O8 [
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num0 I* y, s9 V! o
& T0 h! O+ k" u) L4 H+ O7 o3 o9 S: B对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。5 E9 ]0 t8 j$ [' V! A
' o: \* x0 j4 b) Z
$execc="select count(*) from tablename ";) _ q+ O7 M3 l
$resultc=mysql_query($execc);1 M# p6 f t: o$ P) W' \% B. U+ J
$rsc=mysql_fetch_array($resultc);8 m' Z. e: c+ Q: E/ z
$num=$rsc[0];
. a% C3 z6 E9 j- N1 g
, j9 Z! X3 ~* T! q0 \$ ]7 X这样可以得到记录总数% C8 E( ^2 C% U- O( @! z
ceil($num/10))如果一页10记录的话,这个就是总的页数0 O, a" g6 z6 Q, L% X) }+ x
所以可以这么写% z3 h3 T7 K+ M) A3 R. f' g5 N4 p
if(empty($_GET['page']))# L* p& F0 ?1 e9 K# h
{
8 F. K% t1 b4 g+ k/ r* a7 W$page=0;
+ @0 I% L' N% n: o* D}
. _: k! w: w' A% X6 ~else
6 S1 v n5 |0 K) P% d& w$ T5 A# H0 T{ h+ H7 p, S' H- v6 T6 a; G. L
$page=$_GET['page'];
) I0 _& R9 M+ r, t! T. m$ Aif($page<0)$page=0;
; C5 |, {* Q d/ U& h3 tif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1' ` m/ c5 q, F9 D' a
} ) m4 _) p3 L- y* x" L
j+ P' W# a( K+ ]" |
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";! r+ H" @9 T' ?
//一页是10记录的
5 B( l3 p; N+ e% A+ g最后我们需要做的就是几个连接:
8 V0 \+ V8 U! h8 O) ^<a href="xxx.php?page=0">FirstPage</a>
' F, j& q8 g6 ^! }5 F) z/ d<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 5 `- j- B1 |' f& T) C2 D
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> & N( ~) D7 l! }8 F6 P E
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>0 y7 l6 {: L4 k
r; O- ^0 j; o, A( h& Z
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|