标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
8 t6 ~+ X, L/ ^
学习目的:做一个分页显示
, ]& I% u4 _8 f1 O+ x
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
- D. L0 q- p. Q) n, O4 `$ r
9 I4 d' g6 f! y9 q6 O6 c
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
& `' K; W+ q. ]$ k* x) g
6 ^8 T* ~# I5 Y; Y+ b
$execc="select count(*) from tablename ";
$ H8 Y" O5 S/ s# o) O( @8 ]
$resultc=mysql_query($execc);
6 ?; ]7 W& _" a, y; l/ E' }
$rsc=mysql_fetch_array($resultc);
1 V! [ b% b/ A! U& `! X( }
$num=$rsc[0];
% s' _9 F1 `' R$ k# r2 K) \
4 c6 l8 a: f' F; p7 \8 @
这样可以得到记录总数
9 w$ N. m3 f4 \! V- E+ u1 y L* _
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
; M- c; _ Y) F5 j) J9 G
所以可以这么写
1 o' u$ D" g7 D. D
if(empty($_GET['page']))
& \+ z( v/ l2 V+ }9 _2 T/ p
{
9 ?' y- }! Q! |! j
$page=0;
3 T9 h- k2 E" A: W# i( w
}
3 g* K( n0 h; n6 e1 s
else
+ P1 C9 S0 c$ a; F
{
- d G) h6 A s$ E& y% I+ k$ E
$page=$_GET['page'];
3 F% O" d" v; W5 b6 J' x
if($page<0)$page=0;
: O. }- H# p1 s& \; G& Z; S1 i+ r
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
1 o! ]4 Y" Y4 ?) Z& K6 v
}
% J" k3 j( W. |( t. {8 h
$ m3 h2 j& b' C, h. Z
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
I* |8 a0 T+ v9 X0 z6 k
//
一页是
10
记录的
4 e+ G1 I' B G
最后我们需要做的就是几个连接:
& b s% M8 O. H4 _ Y2 Y
<a href="xxx.php?page=0">FirstPage</a>
3 _7 M' u/ o3 u* C2 B
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
8 x- o+ B2 i: f) h8 Z+ S0 {
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
9 ~- t4 B& Z6 g" Z9 `( C1 \2 C8 }
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
# q7 A6 Q2 f0 R
$ S' c, ~/ _% P) a+ }( p
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2