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

十天学会php之第八天


5 f4 W+ f" {/ s6 n# J2 `; c& w学习目的:做一个分页显示
2 b- @3 {" X: Z) f7 a关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
! L% Q7 l2 K2 x; F6 E& O
- F- a+ F4 u1 M! E. e对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
" Q; w/ Y8 G- K* h

- w& n6 x; w$ x' A( Q, M  g, I. Q$execc="select count(*) from tablename ";
; K- T1 e$ j' ?+ X% [  a' ^6 v$resultc=mysql_query($execc);
! d- B; S! b6 c8 H2 g$rsc=mysql_fetch_array($resultc);8 ^9 m/ }5 {! P- t* v7 u
$num=$rsc[0];8 s* g' C$ n5 [7 t7 ^$ [
  q+ N( D# c& H* w& E
这样可以得到记录总数1 m: o' O7 N: Y  e
ceil($num/10))如果一页10记录的话,这个就是总的页数, @: y) i& @. W& [
所以可以这么写1 `/ D* e8 z' F! I* U- F
if(empty($_GET['page']))
; f& e9 M9 G) O! `9 U5 d{5 g6 z* ~$ J# z, a5 K4 \
$page=0;  l( ^- V2 r4 |) ]$ C8 @; |
}
" {- o7 l) V  [6 D! K9 B' `else
# K7 H* M8 }4 g' e. }/ ?  o& k{  @% Y* D$ j# f6 y  d; M  k" \' K
$page=$_GET['page'];
* L( |/ ^, `7 `$ Oif($page<0)$page=0;
5 n% [/ r! ^, j6 G1 p: P( Jif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1% S( Y, z4 ^' }% L' i
} , D: b" V& A; Z1 Y/ Q; y. N
4 Q5 f  L# s9 @/ V) O$ B
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";. N! N# W2 Z; o2 Z% `% A3 B
//一页是10记录的
, V' V+ V; U2 U
最后我们需要做的就是几个连接:) P# c) b7 u& Z- P5 j- c0 }
<a href="xxx.php?page=0">FirstPage</a>
% F- Y/ [( t* f% R' C  W# N) _! W<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 6 v* ^. f7 \1 K' Z4 ~
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
# E5 x& y+ |4 o* j/ k0 |<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
. [9 y. p0 e6 r8 u6 m
3 M8 o" P  b) o/ u
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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