|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
6 }4 b/ E' {) \" l+ M
学习目的:做一个分页显示
2 H' ]' r- r8 G1 l+ L8 M9 U! `关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
: W [+ b0 T" p+ Y. i, [+ l2 {. l6 m1 S
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, h$ K! C) ~* p6 @/ @& P" y# h# F3 @8 x- ^% j' [
$execc="select count(*) from tablename ";% B* ~. c- l8 x. Q1 H* c |
$resultc=mysql_query($execc);
8 G# w5 P ~+ G: s$rsc=mysql_fetch_array($resultc);6 q1 h! b! U( P3 R& \+ w
$num=$rsc[0];
1 p3 i2 S$ x- J" W4 Q% m# M" z7 Z' x a0 h
这样可以得到记录总数
}1 T/ f! Q4 D1 y4 Aceil($num/10))如果一页10记录的话,这个就是总的页数, ?% C) X( b7 b" p. m+ ?( i, W
所以可以这么写; ?# I! s7 [6 ^. O( M! ~' d# m
if(empty($_GET['page']))3 z) H u" D5 ]! A; A
{/ n) _5 W' e- P5 G" i/ }( T, p
$page=0;
' j# W# p1 Z' m% F7 X) K}" U6 a8 r, ~2 U& r4 Z
else8 v$ B m! n0 ~! j
{ T& u/ y& ~/ B' F, N9 m+ \: H
$page=$_GET['page'];
, q X, m( F3 \3 R( w* Z- B( _if($page<0)$page=0;
- i- {: g ]: s5 S3 Y! [+ V" G: |if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
& w( s3 v+ `, u1 Z- ?} ) D; t: B; F2 {1 X* _7 b, X. @
3 z6 B* a3 y, o! Y$ M这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
. e! U- \* D2 Q9 n! m//一页是10记录的9 o( f% R9 T5 R: M5 d# T+ l
最后我们需要做的就是几个连接:
( _: H8 A# z/ Y: C( ~<a href="xxx.php?page=0">FirstPage</a>
a u _: C) p2 m' G3 V1 f<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> 1 X5 l8 p/ W( y# ?1 x3 d3 K0 m
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
: A; T; W: c* d& a<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>( j( {# u; v K! w& N3 } }
5 x% j+ z6 I$ W; O
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|