标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
7 ^9 |$ |( y: Y1 }
学习目的:做一个分页显示
6 r$ G/ ^" a9 \5 q% V
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
- c' X) `, K/ {5 N
5 t3 @7 L5 s( ]* o! `
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
1 m1 u2 I# k! f
, n' Y+ a5 M( G5 I2 h- ^" L8 y
$execc="select count(*) from tablename ";
4 e+ V, |# j0 \5 V+ ]2 h* R
$resultc=mysql_query($execc);
% N9 t) L+ ~: J) D) D5 }
$rsc=mysql_fetch_array($resultc);
c# V0 D, m- s4 r1 \% Z9 W
$num=$rsc[0];
5 E f+ U) v. w$ {4 w3 `
K% I( D7 V* j; T7 h1 C
这样可以得到记录总数
3 c5 Z4 l( J( d( b$ |
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
, s) l3 s# i( l) ^2 t+ v& M. [3 S
所以可以这么写
2 R* e/ O/ U2 ?7 s
if(empty($_GET['page']))
- q: i! ~, m1 c" c. K7 [! D% g
{
6 x; K& Y/ M, S2 O# l) p a: F
$page=0;
( e1 h8 T) X/ X+ M
}
K9 M% M' ^& x' G9 T f/ p
else
& {; Y' h* J4 `# w, v7 I& J
{
$ E* k3 T: R$ O8 [ r! Q
$page=$_GET['page'];
; J9 Y: R. e$ D/ T% W y" v
if($page<0)$page=0;
7 k9 S6 k4 l- U2 A9 s% @
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
' h2 i; e- w! @
}
* D. h4 p* Q7 b( }. n1 I3 {
% f4 S) n$ A0 x9 e
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
6 |* n7 p* ~% h3 {$ e: w ^3 e
//
一页是
10
记录的
2 N' S5 v+ F9 B- B: f" C6 G
最后我们需要做的就是几个连接:
% {5 [) _/ W2 d
<a href="xxx.php?page=0">FirstPage</a>
7 x( I2 k- q8 R* D/ M
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
: {, y1 B7 ], E3 m7 V: Z2 X
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
* Z' Y, z- h. q/ U- R* y+ g3 O
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
+ b& l6 \; D' x
' g$ S) ~1 A; r' p) {: \
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2