P H P  V I E T  N A M  P O R T A L
Xin chào, Khách. Vui lòng đăng nhập hoặc đăng ký tài khoản.
Bạn đã quên email kích hoạt?






     Trang chủ | Download | Tự học PHP | Kho tư liệu | Diễn đàn
Trang: [1]
  In  
Current Topic Rating: *
You have not rated this topic. Select a rating:
Tác giảChủ đề: Tach trang trong ung dung PHP& MysqL  (Đã đọc 2588 lần)
anhcodon121
PHP Starter
*
Posts: 2


Xem hồ sơ Email
« on: November 27, 2009, 08:03:31 PM »

Khi viết web, việc truy cập vào MySQL để lấy dữ liệu và in nó ra trang PHP là chuyện cơm bữa. Nhưng bạn khi sao khi có đến khoảng 100 nghìn bản ghi. Bạn định in 100 nghìn bản ghi đó trong 1 trang PHP và bắt browser còng lưng để cõng một trang PHP với dung lượng cả mấy chục MB?
 Để khắc phục chuyện đó, chúng ta cần phân thành nhiều trang và mỗi trang ta sẽ chỉ cần in ra vài chục records là đủ. Admin cũng đã từng có một bài về vấn đề này nhưng em thấy bác ấy coding rườm rà quá có thể khiến cho các newbie không hiểu. Em mới nghĩ ra được một đoạn code bình dân share cho các bác tham khảo.


<?php
///////////////////////////////////////////

//        Code by Thanh Bình
//        Email: hero_8490@yahoo.com
//        Student of VietNam national university of HCM

////////////////////////////////////////////
function listpage()
{
Include(‘connect.php’)//file connect.php bạn viết lệnh kết nối tới MySQL và chọn database.
$r=mysql_query("select `username` from `member`"); //ví dụ tôi có trường username trong table member.
$totalrows=mysql_num_rows($r);
$pagesize=12;// Số bản ghi trong một trang
$totalpages=ceil($totalrows/$pagesize);
$paging='';//array of list page, ex: <<pre 1 2 3 4 next>>
if($totalrows==0)
{
 echo "No entry was found !";
 exit;
}
$howpage='';
$howpage=(int)($_GET['pag']);
//lấy giá trị của số trang hiện tại và convete nó sang int nhằm tránh hacker mò mẫm vào thanh address bar. Nếu jang hồ cố tình sửa giá trị thì nó tự động trở về 0
$host=$_SERVER['PHP_SELF'];
if(!$howpage || $howpage>$totalpages)
{
 $howpage=1;
}

//Start printing list
$k=$howpage-1;
if($k<1)
{
$paging.="<<&nbsp;&nbsp;";
}else{
 $paging.="<a href=\"$host?pag=$k\">"."<<"."</a>&nbsp;&nbsp;";
}
for($i=$howpage;$i<=$howpage+3;$i++)
{
  if($i<=$totalpages){
  if($i==$howpage)
  {
      $from=(($howpage-1)*$pagesize);
  $r=mysql_query("select `username` from `member` limit $from, $pagesize");
   while($row=mysql_fetch_array($r))
 {

  //Tùy yêu cầu sử dụng, ta sẽ thể hiện nội dung truy vấn được trong vòng lặp while này.
  echo "<pre>";
  echo $row['username'];
  echo "</pre>";
 }
  }   
  $paging.="<a href=\"$host?pag=$i\">".$i."</a> &nbsp;&nbsp;";
  }
}
$p=$howpage+4;
if($p>=$totalpages)
{
$paging.=">>&nbsp;&nbsp;";
}else{
  $paging.="<a href=\"$host?pag=$p\">".">>"."</a>&nbsp;&nbsp;";
}
echo $paging;
//Biến paging chứa một mảng số thứ tự các trang và link của nó. Bạn có thể echo nó ở bất cứ đâu bạn muốn.
}
?>
Tuh
Logged
lktuan
PHP Starter
*
Posts: 4


Xem hồ sơ Email
« Trả lời #1 on: June 03, 2010, 09:34:21 AM »

bạn nói thuật toàn , cách làm mọi người sẽ tự hiểu và viết code, bạn viết đônh code vạy đọc khổ thân quá, cậu nói thuật toán còn code ai mà chẳng viết dc, dù sao cũng thank cậu,
Logged
Trang: [1]
  In  
 
Chuyển sang:  

Powered by SMF 1.1.15 | SMF © 2006-2007, Simple Machines . Modified by PHPVN Members