获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天


4 S6 z1 R* ?: e学习目的:做一个分页显示9 S, ?: {7 ?0 v/ A& J0 P
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
7 }! x. y1 b. j
! K8 _; |0 H; z6 v对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
$ ^5 \2 R3 m" W  T( ]4 Y" M
& F" i; h- q4 `9 N/ O* u+ F
$execc="select count(*) from tablename ";
0 s5 K# E, ~9 U$ j! k, q$resultc=mysql_query($execc);
9 M# g& \3 a* |! I7 g1 d6 T$rsc=mysql_fetch_array($resultc);( X% D+ v9 H7 `* S) l$ q; X
$num=$rsc[0];" F" \& X6 l7 T" ^" O; Q

. J, F5 `1 q- h6 f! |
这样可以得到记录总数4 h! F" J8 P- E' N
ceil($num/10))如果一页10记录的话,这个就是总的页数8 z/ |8 e/ k7 U, X
所以可以这么写3 G- ?# _& }. w/ b9 G0 B' L! j
if(empty($_GET['page'])); P- S/ X% C) Z+ [
{- [. p9 [3 P9 U) G* v
$page=0;
: X, z! ~/ i5 @* `- m}
4 J- S, r9 R+ h# z$ M: L% [else: b4 F& p4 {) I! N- C+ P+ J% |
{# G) o' ?$ h& P4 M0 ^
$page=$_GET['page'];) @/ x5 t) u) N0 r0 B* n4 ?
if($page<0)$page=0;5 w% G- ?3 x4 k% H: Y: k
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
! `" [3 k( W8 V; ]} / ~% ^0 {) g! I& g- Z& K# W

/ P" K/ b+ Q* A# [0 g% Z- j这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
( D' j& n- g9 @: j2 Q1 f- f//一页是10记录的

3 h* g- Z4 {5 l" j/ Z: |最后我们需要做的就是几个连接:- X' I* X) X% m* o6 l
<a href="xxx.php?page=0">FirstPage</a> 8 m( x5 ~" O! ^1 _) H" K
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
  S. R7 }; M6 x# i& C<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 7 l, P" P  ^1 W) ]3 e
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
4 P. l: h5 \; h/ T& s7 j/ y0 R9 Q# d# L, l% R; S1 F: E
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: