Создание страниц на сайте

solution

Участник
Автор темы
38
8
Вообщем, хочу ограничивать информацию(поступает автоматически) на сайт, но задался вопросом, как осуществить создание таких страниц и переноса информации на них.

1679701081018.png


Буду благодарен любой информации.
 
Решение
Это называется - пагинацией.

PHP:
<?php
class paginationLibrary {
    public $total = 0;
    public $page = 1;
    public $limit = 20;
    public $num_links = 10;
    public $url = '';
    public $text_next = '&gt;';
    public $text_prev = '&lt;';
    public $style_links = 'pagination';
    
    public function render() {
        $total = $this->total;
        
        if ($this->page < 1) {
            $page = 1;
        } else {
            $page = $this->page;
        }
        
        if (!(int)$this->limit) {
            $limit = 10;
        } else {
            $limit = $this->limit;
        }
        
        $num_links = $this->num_links;
        $num_pages = ceil($total / $limit);
        
        $output = ''...

0Z0SK0

Участник
36
15
Это называется - пагинацией.

PHP:
<?php
class paginationLibrary {
    public $total = 0;
    public $page = 1;
    public $limit = 20;
    public $num_links = 10;
    public $url = '';
    public $text_next = '&gt;';
    public $text_prev = '&lt;';
    public $style_links = 'pagination';
    
    public function render() {
        $total = $this->total;
        
        if ($this->page < 1) {
            $page = 1;
        } else {
            $page = $this->page;
        }
        
        if (!(int)$this->limit) {
            $limit = 10;
        } else {
            $limit = $this->limit;
        }
        
        $num_links = $this->num_links;
        $num_pages = ceil($total / $limit);
        
        $output = '';
        
        if ($page > 1) {
            $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a></li>';
        }

        if ($num_pages > 1) {
            if ($num_pages <= $num_links) {
                $start = 1;
                $end = $num_pages;
            } else {
                $start = $page - floor($num_links / 2);
                $end = $page + floor($num_links / 2);
            
                if ($start < 1) {
                    $end += abs($start) + 1;
                    $start = 1;
                }
                        
                if ($end > $num_pages) {
                    $start -= ($end - $num_pages);
                    $end = $num_pages;
                }
            }

            if ($start > 1) {
                $output .= '<li class="page-item disabled"><a class="page-link" href="#">...</a></li>';
            }

            for ($i = $start; $i <= $end; $i++) {
                if ($page == $i) {
                    $output .= '<li class="page-item active"><a class="page-link" href="#">' . $i . '</a></li>';
                } else {
                    $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a></li>';
                }   
            }
                            
            if ($end < $num_pages) {
                $output .= '<li class="page-item disabled"><a class="page-link" href="#">...</a></li>';
            }
        }
        
        if ($page < $num_pages) {
            $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a></li>';
        }
        
        return $output ? '<ul class="' . $this->style_links . '">' . $output . '</ul>' : '';
    }
}
?>
 

solution

Участник
Автор темы
38
8
Это называется - пагинацией.

PHP:
<?php
class paginationLibrary {
    public $total = 0;
    public $page = 1;
    public $limit = 20;
    public $num_links = 10;
    public $url = '';
    public $text_next = '&gt;';
    public $text_prev = '&lt;';
    public $style_links = 'pagination';
   
    public function render() {
        $total = $this->total;
       
        if ($this->page < 1) {
            $page = 1;
        } else {
            $page = $this->page;
        }
       
        if (!(int)$this->limit) {
            $limit = 10;
        } else {
            $limit = $this->limit;
        }
       
        $num_links = $this->num_links;
        $num_pages = ceil($total / $limit);
       
        $output = '';
       
        if ($page > 1) {
            $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a></li>';
        }

        if ($num_pages > 1) {
            if ($num_pages <= $num_links) {
                $start = 1;
                $end = $num_pages;
            } else {
                $start = $page - floor($num_links / 2);
                $end = $page + floor($num_links / 2);
           
                if ($start < 1) {
                    $end += abs($start) + 1;
                    $start = 1;
                }
                       
                if ($end > $num_pages) {
                    $start -= ($end - $num_pages);
                    $end = $num_pages;
                }
            }

            if ($start > 1) {
                $output .= '<li class="page-item disabled"><a class="page-link" href="#">...</a></li>';
            }

            for ($i = $start; $i <= $end; $i++) {
                if ($page == $i) {
                    $output .= '<li class="page-item active"><a class="page-link" href="#">' . $i . '</a></li>';
                } else {
                    $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $i, $this->url) . '">' . $i . '</a></li>';
                }  
            }
                           
            if ($end < $num_pages) {
                $output .= '<li class="page-item disabled"><a class="page-link" href="#">...</a></li>';
            }
        }
       
        if ($page < $num_pages) {
            $output .= '<li class="page-item"><a class="page-link" href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a></li>';
        }
       
        return $output ? '<ul class="' . $this->style_links . '">' . $output . '</ul>' : '';
    }
}
?>
да бро! но как я понял легче использовать jquery datatables =)
 

shinoa

Известный
298
207
да бро! но как я понял легче использовать jquery datatables =)
Только если речь об объеме данных < 1000 записей, далее уже скорость создания таблицы становится гораздо медленнее
 
  • Грустно
Реакции: solution