返回列表 发帖

十天学会php之第八天

5 A/ _/ a4 n' U) H' j) ?
学习目的:做一个分页显示) Q- W. `' V; x' T. M4 {# s# y
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num$ @8 r+ t" e  G+ g) _

7 n& n8 c% o; p对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
8 I) R0 B. g$ W2 h2 m& S% P9 [7 A

$ h- [# ?( ^" E$execc="select count(*) from tablename ";1 f4 p$ M! g: S1 u9 u/ f2 i' C
$resultc=mysql_query($execc);% M& {5 ?, K8 s
$rsc=mysql_fetch_array($resultc);. ]/ Q7 ]! [! K, Y* _4 x  B% l
$num=$rsc[0];! ]" N( m$ f5 w
0 v& |) n2 ~2 V1 T8 A
这样可以得到记录总数6 d+ o4 M# L. c
ceil($num/10))如果一页10记录的话,这个就是总的页数
, u6 r+ v- z+ j9 b) c所以可以这么写! z$ W( f0 ~& {4 X+ C
if(empty($_GET['page']))
2 R, r' c2 _6 Y7 S1 t, d0 B; c6 e{6 I4 Z* y/ Z. m9 K, ]) O
$page=0;) U- N: `0 P+ U) L
}) w+ l: C# B: _
else; @+ S- Q' u4 d2 x( n- R1 S
{$ z! d+ L; Z$ E( c8 k# [* J+ R
$page=$_GET['page'];
( m/ X: w* r" S. K; ^0 S1 W& H" p% {if($page<0)$page=0;, P0 V6 @1 g# H8 b/ |5 O6 F
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1( k# k& g5 r# N) w/ |
}
. A; R8 C' J. F# |/ U. c
$ V3 ^' K/ z5 K" ]2 z5 C这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";( K1 x8 X9 \# w+ ]  p
//一页是10记录的
- M+ H$ m# s3 t- h
最后我们需要做的就是几个连接:
% r2 u$ {9 R! p% \( D& H<a href="xxx.php?page=0">FirstPage</a> ( t: w. H8 l- k0 L0 O
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> / h, O$ f$ J' ?* F9 R6 W
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
( |" l2 K9 G. R: A+ d<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
. e# d  j8 ^5 v% L3 T
5 K* U2 q# ~7 B3 d8 F% g# i8 p+ I
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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