返回列表 发帖

十天学会php之第八天

4 }7 x4 _  _/ b- o1 s
学习目的:做一个分页显示! G) F2 k3 S6 z# ]
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
4 h3 Z5 ~5 h- R' g8 D8 N! G) ?! _7 r1 z9 t+ @! C& H& n( P
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

0 {: p; a& m1 d
- @) d& d0 b' f; c, [% W$execc="select count(*) from tablename ";  `7 Z4 `7 }$ I$ u- @2 I% J4 G  x
$resultc=mysql_query($execc);7 B* W" o, C$ F
$rsc=mysql_fetch_array($resultc);
3 b7 H" {: Y5 a( Z9 r$num=$rsc[0];
5 p  N9 o" X. L  l; R8 @
  |6 M4 O0 ]: @8 D3 L5 E
这样可以得到记录总数- m/ o( @0 W) r4 f
ceil($num/10))如果一页10记录的话,这个就是总的页数5 J: {) X. ^# f8 k
所以可以这么写" b0 o4 A; S' T7 W8 o5 B
if(empty($_GET['page']))
5 [% g  X, m. e' L2 j& c{$ v& I1 ]- z$ Z9 m9 _7 s$ Q; d
$page=0;
& n; ~3 X* H3 u; ]}$ Y! j  E  B, Q9 @
else5 n/ N. O  ^2 |; L5 k9 E2 s
{
/ J6 ^. l0 {. Q$page=$_GET['page'];
( _9 U- n' t5 Aif($page<0)$page=0;
! W1 @/ A  t. A3 f6 vif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
: R" l  k9 k: v( [$ M* Z} ' l9 O5 K* N' w7 v; I7 l

) l" n$ _9 t& x  W7 O& \这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
. [& y0 e8 z$ l+ T//一页是10记录的

* ^: r2 s9 K+ p最后我们需要做的就是几个连接:: d* f3 K) v7 _
<a href="xxx.php?page=0">FirstPage</a> 4 O7 h1 m; y0 H( [6 U
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> % Z8 k0 f+ J& J' w
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
( R* W' X  C1 B: t  H<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
" W& e# I4 O# B. I; y2 x5 w5 d" p2 q
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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