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

十天学会php之第八天

& U9 e* B  U/ u' O/ ~6 v
学习目的:做一个分页显示2 V- _" K7 U* P
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num9 q) C5 R0 P" e# |

0 L0 z. _; T  W; F5 B$ ^3 E" e对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
# |; m: t- @$ k7 O+ }1 j5 s

  Q8 H; ]; r4 ]6 z/ ~+ g$execc="select count(*) from tablename ";4 t7 Y+ |7 U( a0 W9 C, I/ K3 i
$resultc=mysql_query($execc);: W- G- b' F3 C* m% W4 i/ e3 A
$rsc=mysql_fetch_array($resultc);
$ I6 a4 _9 L2 V$num=$rsc[0];8 y$ l+ Z. t1 }4 j- f3 F- |

5 o$ E! P9 a$ ~9 E/ [4 ?/ S
这样可以得到记录总数$ h* i8 s6 X* J' C( c3 h. k- {
ceil($num/10))如果一页10记录的话,这个就是总的页数' j/ w" v# e! t# d9 q
所以可以这么写$ h% c( ]' P1 F8 w+ q( m( f7 K
if(empty($_GET['page']))+ H4 W9 W- m2 z- b
{! I$ u! A5 v# n( W$ E
$page=0;
; t9 L7 U4 u2 {3 F}
# L6 Q  A+ ~, ^- A: a8 ?else8 O2 \0 u, y8 O
{5 `1 A% o1 Z% z" t0 u) P
$page=$_GET['page'];" B: ~% O( t# Z( f
if($page<0)$page=0;7 A3 p/ a# y' W5 l0 j# ?. h. L9 Q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
! [: X7 _8 t1 G7 A. g% k) c}
4 B5 s. X7 h2 w
8 m! l+ Y! n* d9 y: ?" J这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";' A. L9 Z# i0 {# A; U
//一页是10记录的

  k4 L- ^! c, Y' \+ q最后我们需要做的就是几个连接:
5 S0 w5 u2 a& [+ V& v<a href="xxx.php?page=0">FirstPage</a>
  I/ q5 \; o4 o, N9 i1 R<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
/ @4 w! s5 l* v" n4 O<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 4 B$ e7 Y1 M5 |6 y' o
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>( d' \4 a  o# J

7 K) {8 }7 Y% d/ p4 v& y
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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