  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
* n2 k. }1 {; r, I, `+ r6 {学习目的:做一个分页显示
0 e# H* A( U5 ~4 d% Y6 F关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
% t, m+ B& }4 h$ e* }1 h' i" U, C4 `- O( h6 Z+ s8 T
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。) }9 [: Q# F o" a1 y
/ V1 F- k0 p+ S& B# X# Z& P8 t
$execc="select count(*) from tablename ";0 A& j z0 c# ?- P% S6 K
$resultc=mysql_query($execc);
& O3 ?1 i$ g# Y' r" m$rsc=mysql_fetch_array($resultc);
% ?; u H$ c2 u G& O3 \& u$num=$rsc[0];" A4 e$ P8 Q$ l3 l
1 ~: J7 A$ U) { M' ^4 U- Z
这样可以得到记录总数, w7 T5 n- M9 V: u+ Z7 d( F
ceil($num/10))如果一页10记录的话,这个就是总的页数
1 H" h6 ^1 `! h; S r8 x0 m所以可以这么写6 t" n1 x! d5 p" ]" {
if(empty($_GET['page']))3 L1 k: n( F5 E+ J
{2 o5 h/ }) b8 v+ [ C) a
$page=0;
8 X/ |, D) }- L6 Y ?' B. R}9 i1 y* Z+ s% G' g3 u( @
else# O+ C% e" t( n) A) B# x7 i, F
{! H: K, [+ k2 s& j, @3 c
$page=$_GET['page'];
+ u! x- f# S! p& ~, L+ Fif($page<0)$page=0;
X" w+ n+ ?- ~* N9 z5 ~if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
/ C, Y% t7 n7 ]( W" S} : z5 n9 A# L( O8 m4 Q$ e
1 u+ P$ P1 D2 N5 U: d这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";/ G3 L* }2 O& h( H& X: t# e
//一页是10记录的* H3 e3 m; u2 B5 i" f$ j
最后我们需要做的就是几个连接:
. ?9 z4 P/ A+ X<a href="xxx.php?page=0">FirstPage</a>
9 C' J/ i( A1 g+ f8 g<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
4 f- s. Y# x F% n<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> - x0 n3 ~: Q% N; J7 k& @
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> v8 D3 b; c! W5 u
( e P; m/ }; l; f' e: e+ W这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|