|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14325
- 金币
- 2448
- 威望
- 1647
- 贡献
- 1396
|
+ D0 {/ h0 p2 W+ W. n学习目的:做一个分页显示$ T( p$ w @7 g/ S
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num: l s. d/ H* Q) d3 ~# c
' V! Y" W1 v6 |对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, a- ]& }# A" |0 Z3 l0 e0 b y
8 t$ ^' R* ~2 k2 |3 _$execc="select count(*) from tablename ";
! s: m: U4 m& W( E5 Z8 @7 ?$resultc=mysql_query($execc);. ^1 b N5 |; r# z+ W
$rsc=mysql_fetch_array($resultc);8 g4 J2 B2 F y5 w+ o
$num=$rsc[0];
, C6 U7 S s, g' t7 a- d' k2 A* Q7 V- M3 ~! A" ~- z1 ?
这样可以得到记录总数
5 v, K. K/ x$ {! W8 P' v* Nceil($num/10))如果一页10记录的话,这个就是总的页数
" e$ [% z# P+ n6 |) S9 [/ l所以可以这么写4 I! P R6 \& Q! z1 A
if(empty($_GET['page']))1 _! g4 h! g3 O3 p3 m; y+ i* j
{1 C0 k; K4 ^- c+ w2 R( V7 `" Y
$page=0;/ x. t, A. S6 `$ O. }, \
}
& \1 J) p" H. d5 Xelse
0 f8 {$ `, H1 L* } m" H4 S{
& a6 u; v. d+ {. c& Q$page=$_GET['page'];- F4 g6 \2 t! i
if($page<0)$page=0;, ?7 X0 f0 {# \: P- d* \7 P
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1- ^. j$ X" X9 J0 {8 [+ i
} 7 }+ M7 g- |$ \4 b2 r
7 `/ u- e7 X" y
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
8 H$ d( V& I5 U; `//一页是10记录的
9 Q0 D/ N! _& t: L, O: K! y8 n最后我们需要做的就是几个连接:
2 _, F6 X/ `1 t4 K7 Y4 W0 ^<a href="xxx.php?page=0">FirstPage</a>
# R9 K6 M$ a1 h. e<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
1 X* ~% M0 T0 L7 ~9 ]<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> , V7 ^. ^! g9 y, B1 i; X
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
N: Q* l. M9 O. ]1 z9 Q* a3 K3 K2 m2 p2 C4 n) b9 C
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|