|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
8 D$ b5 I! U. I$ y1 x5 `+ }学习目的:做一个分页显示
+ ^0 A7 j1 q3 M2 o$ k关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num! p. Q; Q8 E% q$ R8 ]
" D* ^$ g, _3 v. W& T3 b对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
8 I; m4 p8 u. l9 t8 g5 L
* k% o0 h ~/ X% c w$ \! v$execc="select count(*) from tablename ";
/ z) r. S1 L. i' W. R3 i$resultc=mysql_query($execc);0 j! @4 J& j* ?
$rsc=mysql_fetch_array($resultc);/ e0 i, H/ [+ b% h* P: h2 D: l7 p6 m
$num=$rsc[0];/ N9 u2 q6 w6 q
1 B/ R; v8 U0 ~: N
这样可以得到记录总数
4 |1 Q5 A8 K& L; |% Wceil($num/10))如果一页10记录的话,这个就是总的页数
4 U2 h9 N$ Q2 c1 q0 c5 b9 a所以可以这么写
, `6 W5 p# \: E% `1 f& \3 ?1 b# hif(empty($_GET['page']))
' R5 e6 r) U% h* ]6 p, c{
0 K0 ]6 O5 r3 b$page=0;
5 r' n1 x. \! y, I7 G4 P}8 [& l: [ h) A
else
5 W- n8 J) ?5 O{
1 m* g& m+ [5 w+ f2 m$page=$_GET['page'];' D1 v s- ]7 R% J5 T
if($page<0)$page=0;/ p3 O$ U V) }! M M. t
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1; e: @7 O" H# U
} , Z7 W: m. L$ N" ~, p1 z1 ]9 }0 o
' G7 e0 {) R |5 D/ R! M- m% V这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";2 r; j+ P" J8 c$ F3 m
//一页是10记录的) D& Y) v7 |, f* r; s% B( H
最后我们需要做的就是几个连接:$ z1 s2 x, m; D. ~3 C! e+ j
<a href="xxx.php?page=0">FirstPage</a>
8 S- D! r1 \5 B) Q7 @# m<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> Q5 I, [) W: A! c
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
* Q' |0 Q; b6 e7 p' L- |+ A<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>) V3 P: X: L" v; k: v" @; U
% Y- X ^" p6 Q" U1 c* a
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|