标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
3 v3 y2 |( p, w* J _
学习目的:做一个分页显示
4 P: @1 B* |' T, V" d: Y
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
0 L- n4 P; ~1 W4 t7 {
5 p- c1 { r+ ]" u G8 H& Z8 |0 e
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
0 Z+ Q+ }# D) |6 _7 s& Y
y$ q1 s1 u7 ]* C$ v- G: A
$execc="select count(*) from tablename ";
7 f0 w" R0 \3 \) c1 b
$resultc=mysql_query($execc);
+ q3 I. r/ T+ _% N" ~- x) l
$rsc=mysql_fetch_array($resultc);
' a& A: g; D6 Z+ s) q# I
$num=$rsc[0];
) F" z( |. t0 Q* A5 s3 w4 `
1 f- s! s, k( c! b* q' k
这样可以得到记录总数
0 i5 X' U2 w3 d9 y6 [; J
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
1 w' C0 J8 c: k& W8 k1 w
所以可以这么写
. T" S7 O$ n0 J2 ~" @0 k
if(empty($_GET['page']))
* V5 U: b! F0 m+ J* k
{
& E7 m6 k6 [: d! q
$page=0;
( i( O3 `+ l# h: j7 P4 y, t( _
}
- Y7 m( ~3 `) w' p' q# `
else
0 Q6 }" ?# W+ Z6 k7 Z: n0 F
{
: w+ }4 W! G! j8 Y
$page=$_GET['page'];
- z) r2 d% @: X4 k5 l
if($page<0)$page=0;
6 o4 R) n% S3 P" Z% S
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
# | V- w8 q7 O& Q7 V
}
: Y* O, T) I" }, n
, D$ R7 H, Z6 a- ]: j0 N
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
7 u. C2 a( c: E# x6 C
//
一页是
10
记录的
H' [1 g$ A9 b
最后我们需要做的就是几个连接:
0 K1 J1 L7 ~. D8 Y' K6 M
<a href="xxx.php?page=0">FirstPage</a>
# v! I Y# g7 V# }
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
+ M% R' h: O: q% Y& h! ?
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
8 C1 H; X+ |, |3 j6 R% @# Q) u
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
1 s1 H9 F/ n6 k% c
; t2 _. I, l2 Z5 {( x
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2