10/10/2018, 09:53

Giúp mình sửa code phân trang

Mình viết code phân trang mà khi click vào trang 2,3,4,... mà nó ko hiện ra mà cứ đứng yên vậy ko biết lỗi thế nào, mong các bạn giúp ^^

Trang admin_danhsach.php

Code:
<?php
		if($page=="") {
			$page="1";
		} else { 
			$page=$_REQUEST['page'];
		}
		$sql = "SELECT * FROM news";
		$limit = "6";
		$result = mysql_query($sql);
		$number = mysql_num_rows($result);
		$list=ceil($number/$limit);
		$start=(($page*$limit)-$limit);
		$result = mysql_query("SELECT * FROM news ORDER BY ngaydang DESC LIMIT $start,$limit")
		or die (mysql_error());
		while ($row = mysql_fetch_array($result)){
?>

// In thông tin từ csdl ra
............ 

<?php
echo "Trang : ";
for($i=1; $i<=$list; $i++) {
if ($i==$page) {							 
echo "[<font color=red><b>".$i."</b></font>]";
}
else {										echo "&nbsp;<a href="admin_danhsach.php?page=$i">".$i."</a>&nbsp;";
}
}
}
?>
Hay có cách nào làm cho nó giống hình sau ko nhỉ:
hoangcn02 viết 12:02 ngày 10/10/2018
Echo hết mấy cái biến ra màn hình xem thử là biết vấn đề nằm ở đâu liền hoặc google tìm mấy cái class phân trang có sẵn đó, lấy về dùng cho nhanh
thuyduongcd viết 12:08 ngày 10/10/2018
Sửa lại chỗ này:
if($page=="") {
$page="1";
} else {
$page=$_REQUEST['page'];
}
thành
Code:
if(isset($_REQUEST['page'])&&($_REQUEST['page']>0)) {
        $page=$_REQUEST['page'];
} else { 
	$page=1;
}
hoichobiet2212 viết 11:53 ngày 10/10/2018
Làm từ chiều giờ mình làm được code phân trang rồi, nhưng còn 2 vấn đề mình chưa sửa được là:

1/ Qua trang 2, 3, 4,...cột STT ko tăng lên mà trang nào nó cũng bắt đầu từ 1, 2, 3,...

2/ Code phân trang khi chạy nó sẽ hiện là:
Code:
[First Page] [Prev] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [Next] [Last Page]
Giờ sao để nhiều tin nó sẽ hiện thế này nhỉ:
Code:
[First Page] [Prev] 1 2 3 . . . 16 17 18 [Next] [Last Page]
Mong các bạn giúp ^^
NsT viết 12:05 ngày 10/10/2018
Bạn tìm bài viết của mình trên diễn đàn nhé, mình có viết bài về cách chia trang kiểu 1 2 3 ... 7 8 9

[=========> Bổ sung bài viết <=========]

Đây mình tìm được link bài đó rồi: http://ddth.com/showthread.php?p=1492473#post1492473
namduong8889 viết 11:58 ngày 10/10/2018
tặng bạn function trả về HTML phân trang của mình

Code:
 function phantrang($total_unit , $unit_per_page , $current_unit , $first_query , $AJAX = FALSE , $nextpage = 'next page')
 {        
				   $numpage = ceil($total_unit / $unit_per_page);
				   
				   $current_page = (($current_unit - 1) / $unit_per_page) + 1;
				   
				   for ($i = $numpage; $i >= 1; $i --)
				   {
				   	 $start = ($i - 1)*$unit_per_page + 1;
				   	 
				   	 $start_unit_current_page = ($i-1)*$unit_per_page + 1;
				   	 
				   	 $end_unit_current_page = $start_unit_current_page + $unit_per_page - 1;
		         
		         if (($i >= ($current_page - 5)) and ($i <= ($current_page + 5)))
		         {
			         IF ($AJAX)
			         {
						     if (($current_unit <= $end_unit_current_page) and ($current_unit >= $start_unit_current_page))
						     {
						     	 $pagination = $pagination . "<a class=\"pagination current_paging\"> $i </a>";
						     }
						     else
						     {
						     	 $pagination = $pagination . "<a class=\"pagination click\" onClick=\"$('#big_content_loader').load('$first_query&start=$start');\"> $i </a>";		     
						     }
			         }
			         ELSE
			         {
						     if ($current_page == $i)
						     {
						     	 $pagination = $pagination . "<a href=\"#\" class=\"pagination current_paging\"> $i </a>";
						     }
						     else
						     {
						     	 $pagination = $pagination . "<a class=\"pagination\" href=\"$first_query&start=$start\"> $i </a>";		     
						     }
					     }
				     }
				   
				   }//--> for
				   
				   $next_page_unit = $current_unit + $unit_per_page;
				   
				   if ($next_page_unit <= $total_unit)
				   {
				   	$pagination = "<a class=\"pagination\" style=\"font-weight:bold;width:100px;\" href=\"$first_query&start=$next_page_unit\"> $nextpage </a>" . $pagination;
				   }
				   
				   RETURN $pagination;
 }
hoichobiet2212 viết 11:59 ngày 10/10/2018
Ok mình làm được rồi cảm ơn các bạn nha

Được gửi bởi hoichobiet2212

1/ Qua trang 2, 3, 4,...cột STT ko tăng lên mà trang nào nó cũng bắt đầu từ 1, 2, 3,...

Còn cái này nữa.
Mong các bạn giúp ^^

[=========> Bổ sung bài viết <=========]

Ok mình vọc một lúc sửa được rùi
Cái này cho biến $i trước khi vào vòng lặp while là :
Code:
$i = (Trang hiện tại - 1)* Số dòng hiển thị trên một trang +1;
Thank mọi người nhiều.
Bài liên quan
0