获得本站免费赞助空间请点这里
返回列表 发帖

十天学会php之第八天


. C+ C' I0 m/ d& }& ~  r3 T学习目的:做一个分页显示  C3 _& k) ]; v, ~, O' j9 |
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
4 ]$ x: k# S7 u+ ~/ ^0 e) I2 H0 {8 D  [/ k+ [
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

: P* W' U2 v) h3 o, z/ R. N4 O1 L  _( X! E
$execc="select count(*) from tablename ";' ?5 j. {$ N  X3 g* G
$resultc=mysql_query($execc);
* j# W+ V4 |( ?" e4 b7 X" r7 `$rsc=mysql_fetch_array($resultc);
) m3 R* D& {# d+ }1 E$num=$rsc[0];+ k/ W# v8 n% E$ m4 `

3 M. U/ {8 g4 c! E5 }9 s
这样可以得到记录总数/ g3 `! O3 O2 ^. B$ K, U  X1 W. ^. l
ceil($num/10))如果一页10记录的话,这个就是总的页数
# C3 b, i# {2 U! ^所以可以这么写
% h( U+ I) i6 o! |0 Pif(empty($_GET['page']))
% [2 S( l# A; A. l, _4 D{* [4 ?  Y6 V" d1 [
$page=0;" ], `4 O8 d( p" K3 C+ O/ T$ o
}2 j, x( r6 p* d% V3 ~, L
else' D' M/ S, R6 h
{! V9 i$ X" {& U4 W5 ]$ a' J+ l
$page=$_GET['page'];
; p/ }6 f1 I. \4 W' @* H# w2 t- Iif($page<0)$page=0;
- k; x  k- T% w0 C% G0 G& eif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1, t2 J) H& M$ C# V% F
}
$ [! E# _% X* W& r. z+ i
$ Z3 J. x5 Q& u: y1 M8 o这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
* B( {) ?* P, U$ r7 G; B//一页是10记录的
* B4 I7 o  g* p+ r5 I  I7 a
最后我们需要做的就是几个连接:) {/ |7 A* E3 r% \
<a href="xxx.php?page=0">FirstPage</a>
6 [" O$ v- ~- V; I5 }+ i<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> - ^/ D* }* v1 M: |5 M' i
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> . L& t5 T! X. ^3 J( H/ z+ [
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>
) B0 ~! j: o7 Y9 k. P
3 k  U3 @! v$ E1 B1 N, W/ v
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

返回列表
【捌玖网络】已经运行: