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

十天学会php之第八天


/ @. C$ n' Z! j2 A7 q) ]/ G学习目的:做一个分页显示
; E* j1 P5 B2 M+ t: {关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num  x. j7 o' H: `- U' r& j  Q, r
# V8 e$ D* f4 H! w  j
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

4 l: f7 l2 J, z* q, c- j) f6 k- e3 @/ I0 u0 V
$execc="select count(*) from tablename ";9 [4 w$ E5 u7 G$ C  h) V
$resultc=mysql_query($execc);
4 ~: }9 W, W$ y; ^. P$rsc=mysql_fetch_array($resultc);
4 h9 a& L3 l+ }: C$num=$rsc[0];
+ x7 L' s) ]1 S) l/ ~& q
1 l/ s4 M: ?4 V
这样可以得到记录总数
. V; C* k5 k# {5 w8 t. s: r$ Bceil($num/10))如果一页10记录的话,这个就是总的页数
: L% d, A3 `: [所以可以这么写
7 X6 ?! D% a5 j  ~% J0 oif(empty($_GET['page']))& t+ B% s5 D+ ^- J) |% O
{
9 P2 ]) E# k; O) p7 A$page=0;; ]( a: J$ }8 l, D& Q6 j" {
}2 k) ]1 r5 a* a1 J6 i6 A
else4 q9 c3 [+ P7 O9 G+ y( z
{! Q- f* _; u4 m
$page=$_GET['page'];
' p" Q/ U3 m7 D; u7 P, o+ V$ _/ d5 cif($page<0)$page=0;1 Q2 ^  F7 v* \( j# s5 F3 j) m
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
: L4 S; _; ?  H$ b}
* w: P2 G8 a: h% ?- G4 W& n! L* s' j! J% R" A& V4 @8 X2 S0 r1 O& x7 j! O
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
/ D+ T& o) v# D* A- q//一页是10记录的

! Q3 K& n8 X$ _: h& E最后我们需要做的就是几个连接:9 e. A; Y9 l2 k9 r0 N8 h- S. f
<a href="xxx.php?page=0">FirstPage</a> 6 q  Q& t' \& Y- i# K4 A7 K& `9 l2 ~- p
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> ! H% I$ k  e! K
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
2 C: r& P& p/ l  P- b<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
: X$ B( w/ d0 a( w( ~4 q- K4 P2 [# D. V$ K. V4 J1 ?
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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