标题:
十天学会php之第八天
[打印本页]
作者:
admin
时间:
2008-3-26 16:40
标题:
十天学会php之第八天
% |! k% i8 d7 [! z9 I
学习目的:做一个分页显示
# X! C9 W5 R+ I% h& ?2 R/ h
关键就是用到了
SQL
语句中的
limit
来限定显示的记录从几到几。我们需要一个记录当前页的变量
$page
,还需要总共的记录数
$num
: Q9 l; D2 A- I9 K! F( i
4 W# v9 l' r& ^6 _; ^
对于
$page
如果没有我们就让它
=0
,如果有
<0
就让它也
=0
,如果超过了总的页数就让他
=
总的页数。
. y: W+ M1 D$ ?$ s7 K. e- i
t6 c( J5 H; O% q
$execc="select count(*) from tablename ";
5 Q5 \' d+ C, K% c/ G. l! z, V# `1 i
$resultc=mysql_query($execc);
) X+ ?' T" ~& X
$rsc=mysql_fetch_array($resultc);
5 j1 X O5 g: t7 K* ]
$num=$rsc[0];
! k Z# H$ f' U- d: @3 D' Q! `
5 F0 k) o( O& ?1 Q/ }2 }
这样可以得到记录总数
+ i: I2 f6 ]5 W( @8 M: N7 J
ceil($num/10))
如果一页
10
记录的话,这个就是总的页数
( n9 q! ~! {; F9 ?; t' @
所以可以这么写
) W! c P' E- S& `0 d; i- W9 l
if(empty($_GET['page']))
: |- L- e' v" \, y: |3 f8 T
{
) _: j6 {( t$ A0 w
$page=0;
1 U8 ]$ g0 u; X: H
}
! h# l! R7 @* _* ~" l
else
/ c- b+ P; L; m* ~& h
{
$ a- ]" b) ?- K( m: q$ F
$page=$_GET['page'];
; B5 \+ U& x+ [9 E( q1 C+ ^
if($page<0)$page=0;
! G$ ~; O0 v7 U' L
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为
page
是从
0
开始的,所以要
-1
* \: J o/ J$ w7 ?, ]& I# K
}
, y; c& N( u. o9 q- h' p' d$ k
0 R; U# F/ m: j: `7 ]
这样
$exec
可以这么写
$exec="select * from tablename limit ".($page*10).",10";
( \) \. @: @: U, v7 P% c
//
一页是
10
记录的
P% W2 o) F& J4 B$ e% w
最后我们需要做的就是几个连接:
3 g# `# c8 J, o- j3 \1 J6 N
<a href="xxx.php?page=0">FirstPage</a>
- d! O% ?# B* i# i, m8 ]/ Z. h
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
4 W0 a0 s) t5 ^3 }% C, y! i
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
3 Z: G2 d% l8 v8 Q2 s
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
5 I4 T. N9 [. o5 u( ?1 ^! M
$ N" ~' Q& x! J' t l: w
这是一个大致的思路,大家可以想想怎么来优化?十天学会
php
之第八天就说到这里,第九天说一下一些注意的问题。
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2