返回列表 发帖

十天学会php之第八天

$ b6 U8 i; M% `- U! y, D% X3 I1 z
学习目的:做一个分页显示% X4 y7 {4 w, m
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num) `, T( ?) B/ y! w& c0 t

- [2 {3 ^  l* E+ A) r. ^6 T对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
$ F2 E, A. `6 _7 A

9 |) c! @. `" G# U' C& Y) r: W$execc="select count(*) from tablename ";4 k# c7 L% ]$ e- g: I
$resultc=mysql_query($execc);# D7 g4 r  |0 Q' g* l  K7 ^
$rsc=mysql_fetch_array($resultc);7 \7 x4 @$ [' t' v
$num=$rsc[0];
9 I: H  ?" ~9 N, n9 T. R8 x' I& |4 d: G1 G; |1 [
这样可以得到记录总数
" z, n6 s; C6 f/ ?1 m" M! Q6 m( V6 Zceil($num/10))如果一页10记录的话,这个就是总的页数
; t& x) I, R2 }3 J6 O; M1 Q  b0 V所以可以这么写; U* e) [4 b1 b/ i( V! V# m
if(empty($_GET['page']))
- [  C/ A+ |7 f& J8 K: l  o! N* C{
4 O( A* L- R$ G& i3 L$page=0;
$ i/ ~6 Q) _2 R. E  l}* U9 p) d+ W2 ]' O- [
else4 O& H) Q' B* c5 G
{
0 a* |; o$ i/ I3 Y7 K! O$page=$_GET['page'];
9 _/ x8 ]& `5 \, Iif($page<0)$page=0;- A7 O7 `) x8 D. {- o. ?
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
$ Y3 d- f+ W7 P$ x  @2 |0 r1 D( W}
& y' U- l' X  A$ a( V4 L# b: b
/ v/ A; g+ {+ S& ~7 j4 P这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
5 f7 i3 r3 }' h8 c9 I5 S2 y4 O//一页是10记录的
) U" {% J1 u' F
最后我们需要做的就是几个连接:
9 D# x3 |( b6 ^<a href="xxx.php?page=0">FirstPage</a> 9 p! `; T: F- l" d. B( V( A/ U7 U
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> & @2 Z9 n4 l# n0 J" ^0 `
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
8 C% a- _& P8 Z& P6 j<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
# n$ E3 ^* ~- h4 s; F1 V, @* g2 ]
  K, g  x- n* R0 e# s/ L. U2 M
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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