  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14189
- 金币
- 2385
- 威望
- 1647
- 贡献
- 1333
|
& C: L ?9 y& j# s学习目的:做一个分页显示& V; M T8 j6 R- V, ~. o+ |4 \* n
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
9 U$ |" a; Y) a% Q2 y5 n# \) }% [3 N# S& I- O
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
. m0 I: i" Y# `
/ n8 b6 D) j: D+ j( w. L$execc="select count(*) from tablename ";
- E4 }; C& c, Q: v% y& C6 I$resultc=mysql_query($execc);/ i1 r: L+ N1 ], w
$rsc=mysql_fetch_array($resultc);
]& ^3 x* z" C; z3 B6 k9 P! I* }$num=$rsc[0];
- p2 q- D8 P- T. c# b9 R, _0 o
3 k% T( l7 F- I1 a, g" s这样可以得到记录总数
* f' ]+ K' c9 e; Hceil($num/10))如果一页10记录的话,这个就是总的页数$ L- Z6 V! V1 U7 @8 F
所以可以这么写
! O8 u: U9 x; o8 A s* ~6 Zif(empty($_GET['page']))$ t5 a- J/ G: w2 O
{9 v9 l' V$ b' Z; m% [9 o& y( |
$page=0;
% R. X/ i4 e h' N! e% t} P& o7 ]& i) d2 i
else( Z3 M2 V/ x- ^: H0 F6 f# u: e; @
{6 T9 h6 l" [1 z$ ~! S6 n
$page=$_GET['page'];
# ?. b" J& l& Jif($page<0)$page=0;! G( T9 X$ W+ _, ?# c
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1: U4 h* C9 l- F) h! u+ a
} " c$ I# U! j7 {0 m$ u% @8 a
- o/ ^- B- t: C! K这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
: T9 p( e4 f4 B3 X9 f//一页是10记录的
" n) X) l' h$ z$ \( a3 T1 G最后我们需要做的就是几个连接:
+ b8 G. i8 L0 c<a href="xxx.php?page=0">FirstPage</a> : T0 p- I0 N: N, Y9 C+ y* Z
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
( l3 f& b9 @* v6 V. l<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> ) k+ d- y) T, i: W& d
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>4 x7 {) U( S( i$ G
' k7 r+ Q) Y. h; ^
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|