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

十天学会php之第八天

( u% Z# s3 }  \+ z
学习目的:做一个分页显示! p& F% {$ ?4 q9 P% I0 _$ w6 h4 R
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
  T# G* B+ ?8 \! ^, I7 ?6 t* H4 P- ~$ I/ z+ w9 u
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

- u$ W( u/ ^( o2 O! Y+ [! x& ~  D4 C7 j: D' g6 _7 }
$execc="select count(*) from tablename ";, x) W0 {. g/ T9 X
$resultc=mysql_query($execc);
1 S- o! r. D2 g, z" g0 }$rsc=mysql_fetch_array($resultc);
3 \; k& y5 O/ r  W! l  I6 o$num=$rsc[0];7 F- S8 a$ s! U( D7 e2 t2 q  ~

/ I5 x7 j; v  ~1 K6 v# [" c
这样可以得到记录总数7 I5 q8 ]! V4 y& S! f# B# v
ceil($num/10))如果一页10记录的话,这个就是总的页数) B5 l/ G# f* f7 Y: G0 _
所以可以这么写
. u4 P( z' j: P. u* Nif(empty($_GET['page']))1 S$ \) D4 \! `: @( n+ W
{- P& H" ]! W) B4 J
$page=0;
0 u! y1 \. b2 ~! [}& w$ T0 o- g7 T( ?9 ?
else" i) N5 J: p, C8 o) x# C1 t
{
: u( _; ^% c$ F! o- Z5 R$page=$_GET['page'];
; \" S$ J+ e& r. n/ aif($page<0)$page=0;9 j) B" Z: X  d2 A- ^& |
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1+ p$ b0 P( h; J9 }
} 9 E* B; L. B% g" ]
4 O* a; ?: v) H- f7 j; g, v
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";( J# G0 _0 E/ e2 W" n
//一页是10记录的

: C: ^$ N1 |# b! S1 Q% i1 l0 c最后我们需要做的就是几个连接:
) C5 k3 F3 B+ C6 P<a href="xxx.php?page=0">FirstPage</a> ! z$ W: v+ v$ H# k2 c6 b9 N
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
4 p0 }/ O/ i# m! `+ z<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> # k  w0 Y8 I( [3 I" U- _: v
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
3 ^) o) P1 _* t& ]0 O6 F: Y7 ?8 A$ [
" W! j1 k( Q7 ]5 V
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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