返回列表 发帖

十天学会php之第八天

( H: e' e$ H% X( u; E7 O! \8 A
学习目的:做一个分页显示  E$ O( T+ H5 w1 e7 V
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num6 z; R$ `! q( F# a" T8 S

# E7 X, K% {/ Z* m. w对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。

+ k6 |6 o" I& f. j! S+ _& X
: ?3 a: n1 `) Q3 u$execc="select count(*) from tablename ";! c8 j& F& N/ m! Z* H/ ^
$resultc=mysql_query($execc);
& x. T$ u9 ?! I$rsc=mysql_fetch_array($resultc);
4 |4 c6 ^# c) f4 x, ~$num=$rsc[0];) [$ @9 ]( l. X( d  w* Y1 ]

& d+ t2 H. m( s* i
这样可以得到记录总数
3 Y" G* W0 c0 e. Iceil($num/10))如果一页10记录的话,这个就是总的页数
& |3 p, E/ Z2 q2 p9 R( k; h8 b所以可以这么写
6 g! ]; D6 K* w) s2 Tif(empty($_GET['page']))% ~& G% o2 z; S/ s1 N* n$ H
{
4 i: |0 K! V* K) C# u: H$page=0;. \% }. g8 O" y0 Y; S, o. r1 c: y* O
}
* U. h' Y- G+ S" B3 K6 velse$ z! j& d& m  l, c# g- R
{! c6 h! f% D! _
$page=$_GET['page'];/ |9 E/ a; {4 x, t3 R3 u
if($page<0)$page=0;
4 m* p/ Y" R( ]1 {; zif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1
7 [' @) f6 a+ B# ?0 T% r) s9 |} : w0 e2 i7 t: a: M8 e6 T, }
* ^. y' o0 O9 F* y* h
这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" U( J6 e& ]! K2 J4 D
//一页是10记录的

( s8 d3 Z# S1 q; ~# O2 Z1 U4 x+ R- K最后我们需要做的就是几个连接:# ~2 |, k4 e( U
<a href="xxx.php?page=0">FirstPage</a> & g) U; w# b  U# k1 G4 ~
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
7 Q* y5 H8 W, m6 E7 Z# O2 m. B, i<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
6 N# C) A. G" E" L! w6 Y<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>" j6 C7 X1 t, D8 E
( A5 F, q: u% z9 y( }
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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