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

十天学会php之第八天

& u. v0 L9 Y: J$ Q" B
学习目的:做一个分页显示8 b! n9 f$ X1 f5 x
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num8 ^8 Z8 ]5 w- y
! g: e: v; z9 u* M1 Y/ n
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
0 {; t+ ^; |+ K/ Q
( \5 _" D4 P$ }0 m$ k2 o
$execc="select count(*) from tablename ";
9 m7 J9 j% P4 y0 ]) f$resultc=mysql_query($execc);& E) V1 C4 s, [2 R  k
$rsc=mysql_fetch_array($resultc);
7 a7 [5 l$ v$ B4 T$num=$rsc[0];0 X+ U; r* l% z
" J" a- n1 o5 e* H
这样可以得到记录总数
* h+ u3 B- E9 @6 u6 p* H& e0 tceil($num/10))如果一页10记录的话,这个就是总的页数
! u+ d3 ]/ `$ `: `0 h% @# }! r2 o所以可以这么写
# n! ?+ K- ]2 v# f+ v+ C, hif(empty($_GET['page']))
+ v4 u3 t9 B8 T{
  x2 K5 |1 @/ ^* B$ _! \4 j. G$page=0;; ~4 l  E4 X" f" {, l
}
4 s/ ^( I$ I, Aelse; t) h* _0 z5 c: s- |; V* C+ i. N
{/ E" j2 _6 z: a) b2 S
$page=$_GET['page'];
; x+ q  }& @4 O. N& M* h4 |9 Kif($page<0)$page=0;
, c1 _/ x) r5 X# K* Hif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
& k1 M7 j( d, ~/ ]0 y* r} ; t8 A8 e3 Y+ T5 O: W5 L1 j6 t& s
7 R+ D3 o2 Y4 q6 o' `6 u% f' f/ K
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" k4 m7 b* W9 Z% i
//一页是10记录的
% H% `/ ~! o& V' [1 j8 N
最后我们需要做的就是几个连接:
& P) Q; Q) ]! q6 M<a href="xxx.php?page=0">FirstPage</a> . |# g: P- V% F
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> $ O$ m# R4 F2 I* g
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> $ W( r; ~  D: T' M
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>) E" N( K4 t+ Y7 E
4 w. l  c8 @, J' [/ |
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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