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

十天学会php之第八天

! m, N$ _& S# ]8 J; v: y1 l5 ]. B  j
学习目的:做一个分页显示: C& B) D: C. R/ A  I+ P+ D$ K
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
1 i1 T2 h9 f2 k  q; ]
/ f) \4 i8 _+ |  q" x; ]" D/ P对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
/ |2 ~! C* J1 P$ _* r; A
* J# ^5 ~# h3 J! A
$execc="select count(*) from tablename ";
! T9 Z8 O+ N* g$ {" |9 J  Z2 _$resultc=mysql_query($execc);
' Z' p7 m4 J6 @8 V( e- N# u1 g$rsc=mysql_fetch_array($resultc);8 g: [: ?0 A" b8 g& b
$num=$rsc[0];/ J/ c6 x3 T0 r9 w4 O; b

& b; f0 T' `1 j- j, y  Z
这样可以得到记录总数
! \, m, E6 F% r  e# k; ~ceil($num/10))如果一页10记录的话,这个就是总的页数$ Q2 l3 ^, {6 Y9 |: m1 |9 a( X
所以可以这么写2 T/ v* q1 s! }
if(empty($_GET['page']))
/ D- D5 J* Q7 u! {) k+ e{: R5 J" v+ a; l% S; t
$page=0;
9 A1 `/ {! H, G( ~0 C* M3 R7 Z7 r}  @; y/ L; U9 n9 Z
else
, J* a" a2 I+ l5 q2 a{
8 r$ K! }$ d4 ?: R1 {$page=$_GET['page'];
8 O2 w- j2 i. {# Q. Jif($page<0)$page=0;
3 N6 r. c/ I9 ~' X7 g* Q" ~if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-15 p* F2 y- x9 l- C8 p
} + @4 _# ~6 O8 N& m

9 {1 h9 g# ^' J# G3 b) r+ Q1 T这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";- ?+ w. ?5 B3 a  v
//一页是10记录的
# ~: K7 N* k% A) f$ z3 G
最后我们需要做的就是几个连接:
7 R( B( Z+ {0 {# B' Z5 V+ Z1 x<a href="xxx.php?page=0">FirstPage</a>
7 _" j' M8 n3 _! S' J+ }: `<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> % S3 e+ r+ S0 ^4 T
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> " F% v0 V5 F7 d
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>6 n" K1 v4 e) C% o, \3 o
8 p1 a6 W3 S3 A9 |4 r6 \  e
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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