|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14353
- 金币
- 2462
- 威望
- 1647
- 贡献
- 1410
|
6 |! l, h8 h/ l+ n7 l
学习目的:做一个分页显示
# I7 R; y! K0 f: ~$ L7 E关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
! V0 ~+ h- k7 s
( U% j% L; f& p& T1 b对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。8 A) {# B5 _8 h' y
3 W% B& j- q* l+ u8 e; d7 x) G; g$execc="select count(*) from tablename ";
z& d" W1 o$ z7 l8 r! Y+ T( y$resultc=mysql_query($execc);
/ E: K: c; S" T* \% x$rsc=mysql_fetch_array($resultc);
/ e1 h$ T. i' F9 I& W+ k! V$num=$rsc[0];
# L0 e3 [9 m* u& i! l, m( Z5 ^; g, s
这样可以得到记录总数8 L2 P/ @- k9 y( D. h+ u2 u
ceil($num/10))如果一页10记录的话,这个就是总的页数$ a' z. i, E" J" G; K$ [
所以可以这么写
- c }, s* Y1 C( {/ Fif(empty($_GET['page']))
1 R/ k A. D, q. g- U0 h' v) _4 a{
! [0 v) Q9 c" @$page=0;
! L' i$ r1 k$ \8 X. \6 W/ S}
$ \3 E3 a& Y$ O7 Eelse9 q5 n3 K1 ?% ^! l$ n
{
, M# ?0 Z: J5 J) w% t$page=$_GET['page'];
6 q. Z" p; q* [( g, x0 I6 Rif($page<0)$page=0;% @( D V9 ~& \
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1' H: I+ c' {9 _5 j+ L/ @
} ! Y; U4 _9 {. x! O
' s7 a! M/ [# n这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";2 p3 r5 F9 Z5 y. V0 |
//一页是10记录的
& @) K9 ?4 R. y% s最后我们需要做的就是几个连接:9 B+ n1 r5 o. p$ [. i
<a href="xxx.php?page=0">FirstPage</a>
' ^+ R% F4 M# [5 |4 k& J+ S: a9 u<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 3 e9 ?& [5 T. l8 m6 Q2 ]# P
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ) i% E5 Y4 h( t" s/ V
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
W8 l& }1 x* o( ^$ q- s" z& V$ [3 x6 Q4 ?# ?
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|