2013-04-15 17 views
6

hi tất cả mọi người tôi đang cố gắng để tạo ra pagination của tôi trong dưới dạnglàm thế nào để Fix Pagination sử dụng PHP

Đến trang 3 [text-box] Trước 1 2 3 4 5 .... 400 Tiếp

và dưới đây là mã của tôi

   if(isset($_REQUEST['limit_start']) && $_REQUEST['limit_start'] > 0) $limit_start = $_REQUEST['limit_start']; 
     else $limit_start = 0 ; 
     if(isset($_REQUEST['results_to_show'])) $results_to_show= $_REQUEST['results_to_show']; 
     else $results_to_show = 100; 

     if(($limit_start-$results_to_show)>=0) 
     $pagination.='<a href="details-inventory.php?limit_start='.($limit_start-$results_to_show).'&&results_to_show='.$results_to_show.'" >Previous</a> | '; 

      if (isset($_REQUEST['submit']) && $_REQUEST['submit'] != "")$search_limited = 1; 
      else $search_limited = 0; 

     global $wpdb; 
     $sql='SELECT count(*) 
     FROM `inventory_location` '; 

     $data= $wpdb->get_results($sql,ARRAY_A); 
     $row_count= $data[0]['count(*)']; 

     for($number=(($limit_start/$results_to_show)+1);$number<($row_count/$results_to_show);$number++)//($row_count/$results_to_show);$number++)($limit_start/$results_to_show)+ 
     $pagination.= '<a href="details-inventory.php?limit_start='.($number*$results_to_show).'&&results_to_show='.$results_to_show.'" >'.$number.'</a> | '; 

     $pagination.= ' <a href="details-inventory.php?limit_start='.($limit_start+$results_to_show).'&&results_to_show='.$results_to_show.'" >Next </a> <br />'; 

Bây giờ vấn đề là thế này ..... nó hiển thị tất cả các số từ 1 đến trang cuối cùng ... tôi muốn phá vỡ nó vào bên dưới phong cách

1 2 3 4 5 ....400 

thanx

+0

'&& results_to_show' đây là một lỗi đánh máy? bạn đã sử dụng trên – Fabio

+1

@Atif Azad là bạn đang sử dụng WordPress – Sabari

+0

có tôi đang sử dụng wordpress –

Trả lời

3

Nếu bạn đang sử dụng WordPress, có chức năng sẵn có paginate_links để phân trang.

Bạn có thể xem thêm thông tin trên cùng một địa chỉ tại đây: http://codex.wordpress.org/Function_Reference/paginate_links.

Thay vì tạo của riêng bạn, nó sẽ là tốt để sử dụng chức năng sẵn có mà các chức năng tương tự những gì bạn cần.

Điều này sẽ giúp bạn phù hợp với nhu cầu của mình. Bạn chỉ cần vượt qua các đối số chính xác. mid_size là đối số bạn cần chỉ định số lượng trang sẽ được hiển thị ở hai bên của trang hiện tại, nhưng không bao gồm trang hiện tại.

UPDATE:

Bạn mã có thể được đơn giản hóa như dưới đây:

global $wpdb; 

//get the total count 
$total_count = $wpdb->get_var('SELECT count(*) FROM `inventory_location`'); 

//number of results to be shown per page 
$results_to_show_per_page = 100; 

//specify the number of page numbers to be shown on each side of the current page 
$mid_size = 3; 

//check whether the query argument page is set and get the current page 
if (isset($_GET['page'])) 
    $page = abs((int)$_GET['page']); 
else 
    $page = 1; 

//generate page links 
$pagination_links = paginate_links(array(
          'base' => add_query_arg('page', '%#%'), 
          'total' => ceil($total_count/$results_to_show_per_page), 
          'current' => $page, 
          'mid_size'=> $mid_size 
        )); 


echo $pagination_links; 

Hope this helps :)

+0

thanx sabari thực sự tôi mới với wordpress ... không có ý tưởng làm thế nào để sử dụng nó. bạn sẽ cho tôi biết làm thế nào tôi sẽ sử dụng ở đây trong mã paginate_links mã của tôi từ liên kết được cung cấp của bạn –

+0

@AtifAzad Vui lòng kiểm tra cập nhật của tôi – Sabari

+0

sssshhhhhh ....... thanx Sabari ... hoạt động của nó –