|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
* l' `7 o3 P L% R
学习目的:做一个分页显示! B' r+ Y3 |1 Y0 Q1 a) J7 { r1 e, q1 O
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num" o1 z% `6 c# K) Z" T1 b2 O% _8 u
7 I X0 `2 o; y# Z对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。# ~! c; n9 R0 ~4 i
8 [6 s' d/ w+ h1 g# h, d$execc="select count(*) from tablename ";% N% F* {% L, k9 w: ]; `% O
$resultc=mysql_query($execc);6 _. b4 e4 R% \4 b% p
$rsc=mysql_fetch_array($resultc);
, a4 z) P6 a7 G' y$ N# B! @, s$num=$rsc[0];
2 Z; k2 \& Y# w7 s
" e! \$ [" X: D& k这样可以得到记录总数: M0 q- Y9 t" [, [$ N
ceil($num/10))如果一页10记录的话,这个就是总的页数
$ F) ~4 T {* Z+ w! {, ?2 p所以可以这么写3 D8 m/ f, s2 L/ K4 H
if(empty($_GET['page']))" e W: h( W9 K, q1 [" Y5 V
{' R5 l% {9 C0 M# L" }* o
$page=0;( `; V! \: `4 X1 Z
}
/ x! @* L+ q4 ^else
; a. D* R/ n6 d2 v t# x{
2 B& U- h" f% b$page=$_GET['page'];
' I& A7 }. Y# p3 A' R- Hif($page<0)$page=0;" N( h; V' B1 I x+ v% l
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
+ n! w' Z. E( ?}
2 K9 o& {2 o8 f1 r, T: b6 K& g
8 M) i0 O; w& n4 \! `这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
; r7 c# k! e# Y* N& l/ r* a//一页是10记录的5 r8 N* L/ t! {( o! h$ m# Q: s4 L
最后我们需要做的就是几个连接:
% U2 S4 J. z# |5 G# t, E: w0 M<a href="xxx.php?page=0">FirstPage</a>
0 G& D1 n& o( v8 P/ g' s" |5 _<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
) z4 [# }$ ]' c0 H<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
C% c& c) S( \2 V( I<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
s5 u8 s4 [% ?. N* B, ?; _1 ^: a( F- b
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|