标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
' ?. \6 Y3 Q7 F0 e# Y' n- T2 b
学习目的:做一个分页显示
2 B Q5 E7 S6 z |3 v
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
" ~5 f0 I# A+ U6 Q; x
% s8 l. e& l1 y& H0 T: D( F# m
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
/ u% j+ K: }% }
5 i4 H7 [% e8 g" e3 a
$execc="select count(*) from tablename ";
: T6 e$ S! p3 T* t, c/ s1 X! m
$resultc=mysql_query($execc);
1 }2 x# V0 u5 d* C
$rsc=mysql_fetch_array($resultc);
" F/ e( u( `" y) n
$num=$rsc[0];
* I$ u: i. ?4 t' c
: X9 Q, i0 j1 Q& q# N/ N4 d& S: X$ n
这样可以得到记录总数
$ t4 c4 ~' M4 }- ^( `
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
9 x, m+ R* V0 K& x1 J/ k
所以可以这么写
( \+ G8 f" R8 Q% H4 G% E( A% S! F e
if(empty($_GET['page']))
6 ^5 R4 W6 [9 g# Q$ I9 V
{
# }) Y9 c# K4 ?2 X, i
$page=0;
0 b5 S9 l* r, C. s& b& B
}
* ^/ z1 M- a7 t( }; i
else
_; P# N/ O6 r! q/ q4 F7 d
{
0 Q2 z1 u/ y% D. t; ]+ j
$page=$_GET['page'];
1 s1 ~5 V, h7 D% J4 B
if($page<0)$page=0;
& i, R$ Y8 y7 \5 H* a1 q9 q
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
" {9 k- g ?. x8 @
}
8 `- O) Q5 r) w q( c
( v" _* M$ E# ?# F; N
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
2 u5 E9 Q# v+ ]0 ?8 {
//
一页是
10
记录的
0 |- c/ ]2 r* u0 ^
最后我们需要做的就是几个连接:
7 C+ e7 ], o7 M% K* ]1 _& u) R
<a href="xxx.php?page=0">FirstPage</a>
$ J" \ K+ {8 V3 }9 F. p0 d
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
' j$ f' x7 z5 }9 U* }' ~
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
. D7 X( T( r% ~. A: V1 ^& ]3 x
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
2 i3 |) ^2 F. s5 Q1 w
3 [0 j/ `5 m6 Z* i4 I4 |7 N
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2