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

十天学会php之第八天

2 \7 V# X5 t. k6 n/ ?0 w0 [
学习目的:做一个分页显示
0 ~/ A; _/ y% {7 k- C0 t关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num  r8 }8 Z/ u2 W
3 ]1 I; \3 Z' E+ U( |& Q
对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。
, Z  R/ ?) K, K( w, P! y! ^$ M$ ?

" x! W1 w% p, R4 L. p0 Z* E. C$execc="select count(*) from tablename ";
  G  Q5 A/ X/ ~- i7 G$resultc=mysql_query($execc);2 `% w% z) ?: c$ B, a
$rsc=mysql_fetch_array($resultc);
' D# e4 `1 d8 y. j, [. |. T$num=$rsc[0];
+ r( O3 @4 ]! E# T5 T2 d
/ J) n6 G# A) B" p8 C0 k5 V
这样可以得到记录总数
. R* `1 n" `! Y* jceil($num/10))如果一页10记录的话,这个就是总的页数
1 m+ ?$ {& g% m( w; K所以可以这么写, ]# X8 X; x+ D( _8 F* ~" N5 c( ]
if(empty($_GET['page']))+ f4 a( g" d* D9 O% j  y0 ~- a
{
6 Y8 k; |+ C, |$page=0;; g  k6 ?. q1 l3 ~
}. \0 a6 y. f; g0 ~
else3 A* ]0 E. t' U& ^- ?
{
9 z$ ^, |1 b6 H. I4 c9 L$ }; {$page=$_GET['page'];4 c8 g7 P) q/ f( h& h1 P% B
if($page<0)$page=0;
+ ~5 {/ k* R8 a3 ]9 f3 ?) Y& N( Rif($page>=ceil($num/10))$page=ceil($num/10)-1;//
因为page是从0开始的,所以要-1. h4 `4 |' T3 y* t+ t) f' x
} : w) {$ i& d6 H% }; p  [1 Y

6 j) p# C4 S" ^2 {* E这样$exec可以这么写
$exec="select * from tablename limit ".($page*10).",10";
# S  {9 i3 T- X) D4 h7 k1 q! O//一页是10记录的

+ Q* u" R2 Y. h最后我们需要做的就是几个连接:
2 C' @. k% C' i) b8 {# @<a href="xxx.php?page=0">FirstPage</a> - H* m4 A2 ]  Z2 C4 o/ V$ u+ k' P
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a> - Q* n, b+ x3 m! ]" V& ^$ T' A& ^8 `
<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
, |( o' W( @1 z  H7 D' |<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a>8 w: t4 |5 ]: W1 a5 ]$ A
+ e+ C. I* W9 o) a" G1 T; D
这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。

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