|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
. T/ c! q2 g2 ` O
学习目的:做一个分页显示; i' ]% L$ K/ T- n& e
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
' i: s5 j7 ?. v& ]8 v" e/ y- ^, s
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。' H( N: j. |* j# ~# G. k
& T2 D9 D; ^$ Q1 O/ Y) s
$execc="select count(*) from tablename ";8 x6 k, B& U$ v* ~+ l) o3 d
$resultc=mysql_query($execc);2 O1 j) h, r3 x% ~& r
$rsc=mysql_fetch_array($resultc);
" ~/ |4 R. q }$ u, ^0 N$num=$rsc[0];0 _- v4 c$ l- d# m
T- h. U$ u$ u0 H4 R这样可以得到记录总数& n+ Q8 U' B( x
ceil($num/10))如果一页10记录的话,这个就是总的页数
) l; s1 [/ n) h4 o' Q5 T4 @9 Q4 `所以可以这么写6 Z. ?! U/ B0 b4 r7 h/ {
if(empty($_GET['page']))
6 [+ I. g% J/ C$ S- H! z S{
: }, s2 Y! v! y# {% c$page=0;
* m4 N$ x. y6 T! [}: u0 B: U! a+ _& c5 I
else
) W9 y2 g3 j0 C9 @" g{9 `5 c' {2 J) C
$page=$_GET['page'];
! R; |# v% }7 d& Q5 l9 W7 |if($page<0)$page=0;
) |9 A+ N$ h6 hif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
: U y& X$ d) A- j& y4 \0 B}
$ Q* x. b6 e0 w0 L* E5 f2 D7 ]% ?1 z" b# m: S T+ W1 v
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";% p% R7 ~% H* P; X' _3 U% `2 d6 w
//一页是10记录的2 J" P" j+ C+ o; A6 z7 O0 I
最后我们需要做的就是几个连接:" L X+ h: E$ Z4 O. E N
<a href="xxx.php?page=0">FirstPage</a>
) d: c) b, z a N9 x7 E1 P<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
* v" m, H7 ^" Z7 T' l- d! ^" C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
+ J% ?! j6 E6 D# f) A<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>0 R0 t* R5 [ D$ [
" m( y& `4 t' w' P& U
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|