|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14341
- 金币
- 2456
- 威望
- 1647
- 贡献
- 1404
|
0 l/ K$ f& J# k% x! n6 P9 Y9 D$ E$ R学习目的:做一个分页显示. M7 g/ }# T4 F6 |
关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num
& D& H0 r: \% J; F7 f& F7 P5 W# O& S
( c, ?; H9 ?7 `$ E$ `$ h对于$page如果没有我们就让它=0,如果有<0就让它也=0,如果超过了总的页数就让他=总的页数。& @# W' X' k- C5 ~+ a& G) F
" I9 h0 @. a) I$execc="select count(*) from tablename ";% T0 {* h; K$ q, j* V
$resultc=mysql_query($execc);
! e- S" n y6 C6 n- W' v$rsc=mysql_fetch_array($resultc);
. \" ?* @ U* \3 J6 g' Z$num=$rsc[0];
8 w. i9 D" {) h- Y5 v9 [5 F* y
这样可以得到记录总数/ {; ]) ^8 s! Y2 {
ceil($num/10))如果一页10记录的话,这个就是总的页数
- S2 p/ ?' S$ W; w- Q9 u' T$ S所以可以这么写
+ I$ `& E* @1 G+ h$ fif(empty($_GET['page']))+ z4 y# h* @0 @
{; V( l( h( |+ H5 G
$page=0;
2 y3 S$ v1 l, w, A- ^}
0 C7 r# ] A) y; H6 ` ?) H* s5 ~ B; Gelse
. W$ G1 ~. {3 c+ s* g$ j# K: ?{0 ~5 T/ Q- @+ K" ?9 [/ D
$page=$_GET['page'];5 ~3 f/ P2 V5 A# g
if($page<0)$page=0;
: m3 ]+ N6 [* X: R: [7 eif($page>=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-10 d& C. m) v! b" z
} 5 T' X. p( \ a' \: Y, P
9 W( \/ u, C" I* D& A
这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10"; w. _% \9 M6 Z
//一页是10记录的% C* s& x+ Q) U- B3 s) n# c1 h; }
最后我们需要做的就是几个连接:
3 ?8 N' F( j' B" _1 D5 E<a href="xxx.php?page=0">FirstPage</a> $ h7 s5 V" y$ T3 f$ l J' Y. V3 {: W
<a href="xxx.php?page=<?=($page-1)?>">PrevPage</a>
" _' {# h, ]: q<a href="xxx.php?page=<?=($page 1)?>">NextPage</a>
" d0 o1 q! q6 ]& `& ~/ j8 Z<a href="xxx.php?page=<?=ceil($num/10)-1?>">LastPage</a> ?% I) |, l/ V+ f. D
" y m# Y* O0 c! L这是一个大致的思路,大家可以想想怎么来优化?十天学会php之第八天就说到这里,第九天说一下一些注意的问题。 |
|