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

十天学会php之第八天


) H, t* B) g  k- O1 X. Q' X学习目的:做一个分页显示
- B) w5 t4 l6 s6 G; T关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num" I+ f9 d0 I* F" `1 v! L. J7 o4 g

/ z( u) [9 v# {8 V$ z0 k对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, j7 r" ?2 n9 X! A" C

$ q: Z8 }( z" E) v& R$execc="select count(*) from tablename ";3 i0 _, R; |6 e, f
$resultc=mysql_query($execc);
) ]6 ?( ?+ A5 _+ Q% b% N$rsc=mysql_fetch_array($resultc);" E' k+ i# j( H+ H% k# j) `4 Z) a
$num=$rsc[0];
: r1 P5 \) @! d' o* D0 Q# u/ {& f+ h' ]
这样可以得到记录总数! ^" h/ r& S- h- N* F. ^
ceil($num/10))如果一页10记录的话,这个就是总的页数
4 o0 y5 o* H' n/ F, |) p所以可以这么写
$ y2 |8 }+ \+ x* D# t( {if(empty($_GET['page']))+ L3 p: {. Z1 g1 W- K" c& h1 @9 Q
{
8 k; C* D. c; ]6 q6 V$ y6 z* I( c$page=0;
- u. t# [. Z- b, y' N- W$ q}
  j9 Z' @* d- C$ H! {else2 I4 K6 H: M- Q& j( [
{/ X9 X6 Q4 d* {) H, g
$page=$_GET['page'];
/ p# L, q, ?, B( i! S# Dif($page<0)$page=0;; A8 L1 z. Q* y7 P
if($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1& y3 K) o$ U. o; \, b
} 7 O/ u# b5 F* w: i' @; J  S: h2 g5 c

- P7 l0 R3 X- h这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";" F" \; t, z& ?
//一页是10记录的

; s% \8 v3 u- L( R1 \6 w, ]最后我们需要做的就是几个连接:7 Z' Y) m" f3 a$ D3 S1 S) Y7 H+ c! i: O
<a href="xxx.php?page=0">FirstPage</a>
: E0 Y4 [5 p$ d  J2 Y+ H<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> / t6 S8 w1 M/ Y- _( \/ D+ s% j' |, J
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a> 5 x6 p$ A9 I2 C! w+ g( U
<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>/ w4 l4 F1 F2 n  W5 ]1 J

8 Y9 M0 o4 d5 y" Z8 T* \4 f; G
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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