|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
8 S3 T+ \! J. N u! i* T: Q
学习目的:做一个分页显示- ]9 I; I4 ^; d/ i) [
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num# u* G& M& u' ^* @$ ^2 ]
% ~& F& x# ?# U' b! Q对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
# R& p8 I* O7 @& V' a. v- ^
1 e* P6 |5 N9 K, g, k" s$execc="select count(*) from tablename ";
- R; Y1 D I8 S" Z$resultc=mysql_query($execc);8 G- g4 Q- [* O7 V6 h/ j
$rsc=mysql_fetch_array($resultc);
/ b8 T. \6 v; t$num=$rsc[0];* Z. a; y# i( [- f: j; z# k: \
9 `$ C( a0 O* L# M- c
这样可以得到记录总数
9 c8 C% V+ ^$ |ceil($num/10))如果一页10记录的话,这个就是总的页数
7 q6 p0 A+ Q7 R2 i# N0 @所以可以这么写
. S# L8 |$ g4 z! j+ Iif(empty($_GET['page'])); t5 a. o5 @) x
{+ z6 w; o4 U0 }1 F. h) o
$page=0;% w+ T, u6 U, O! l) N( s9 X, M
}( Z9 F) F( `; G+ `2 x: {/ h
else
, t4 I) {) C4 E: R{
, q! N3 K. X" }1 u0 a$page=$_GET['page'];& D: s0 R# v( D/ L6 ?6 k4 X# H
if($page<0)$page=0;+ {& F+ D- f4 R& @- F
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-10 X) d& w2 k$ `# e2 f6 L3 t; u
} 9 {: r, [9 L5 I; q& y' ~) r
2 [3 J. {$ ?" y9 x, \# |# t0 z这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
9 B4 B9 Z0 b0 F2 k, y+ r//一页是10记录的
n' Q" i. v$ M$ l& C, b) V最后我们需要做的就是几个连接:% ]! I4 l( b% B4 B9 k5 a
<a href="xxx.php?page=0">FirstPage</a> " {, X9 I+ ?/ f
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 5 i7 S! s$ e! e+ H7 U4 r) l
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
: K, `1 a& }0 V% k: o f2 j1 R, |% I<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
0 Q4 t l! b# w v3 a3 s% c) p. j! y$ B+ U8 X6 p: N
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|