  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14191
- 金币
- 2386
- 威望
- 1647
- 贡献
- 1334
|
/ Z& ^: D5 \ h- M Y) L5 ^) z; p学习目的:做一个分页显示* h$ d# s5 v; U
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
/ ~7 Q$ c$ w1 i0 _. l: o, r. }7 }" u0 N3 @: A# E
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。, N3 K4 M: O( d. p3 i8 U( v
. A4 D; Q D6 |/ S {- n9 ^
$execc="select count(*) from tablename ";
$ H, L$ p1 q+ W0 W4 D) }$resultc=mysql_query($execc);, y+ j. L8 l: i# _
$rsc=mysql_fetch_array($resultc);
/ N* {* \/ d. l$num=$rsc[0];
- V1 |" h* K n7 e. M- L) a+ w0 G+ e
这样可以得到记录总数
4 c' ?) D: I! m8 Xceil($num/10))如果一页10记录的话,这个就是总的页数
3 a" o; n1 ^+ Y所以可以这么写, t: R0 i" k. Q) Z
if(empty($_GET['page']))
5 u' F5 L) ^: l( O7 ?{
' h% S9 B# U; t* h$page=0;: A2 ^( S- ~* T: r( _
}
! w7 V# H- s$ E% ^, d, Jelse- P& W+ i& \4 _* }9 n- a% G6 B
{
/ J' I: Z9 c( k g$page=$_GET['page'];
" X! E4 \/ I1 _' c- iif($page<0)$page=0;, J' Z- ?4 V% G1 `% y" S" v
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
* }0 u# V0 U9 ^: n$ X6 e. C}
7 n+ ?6 k( k# `. d- w; o" U- b4 m0 g# Z' r1 @& `) U W
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; \/ y" `' J o+ a7 x- d
//一页是10记录的' l5 s. K. L6 H p7 L4 k! x
最后我们需要做的就是几个连接:* r# D; [2 ~2 |( d' X
<a href="xxx.php?page=0">FirstPage</a>
: n% x. f9 E- H<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
! ~4 f9 m, E, T$ q1 G<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
' Z L1 y# }' f" R- |/ J) z9 J<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
+ @8 D( k G* d: i1 h7 W, }/ q& y8 G3 |' j P. _2 F
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|