_vitalja__
Новичок
Оцените мой скрипт разделения по сторонницам
Код:
class Pages{
private $cur_page = 1;
private $back_page;
private $next_page;
private $per_page = 2;
private $start;
private $page = 0;
private $select_limit;
private $select;
private $row;
private $returnArr = array();
private $pageplus;
private $pageminus;
function __construct($db, $table, $_GET){
$this->getpage = $_GET['page'];
$this->db = $db;
$this->table = $table;
if (isset($this->getpage) && $this->getpage > 0){
$this->cur_page = $this->getpage;
}
$this->start = ($this->cur_page - 1) * $this->per_page;
}
function SelectPages(){
$this->select = $this->db->prepare('SELECT * FROM '.$this->table.'');
$this->select->execute();
return $this->select->rowCount();
}
function back_page(){
$this->back_page = $this->cur_page - 1;
if($this->cur_page != 1){
echo ' <a href="?page='.$this->back_page.'"><b>Назад</b></a> ';
}
}
function first_page(){
if($this->cur_page > 4){
echo ' <a href="?page=1"><b>1</b></a> ';
}
}
function last_page(){
if($this->num_page()-3 > $this->cur_page){
echo ' <a href="?page='.$this->num_page().'"><b>'.$this->num_page().'</b></a> ';
}
}
function next_page(){
$this->next_page = $this->cur_page + 1;
if($this->cur_page != $this->num_page()){
echo ' <a href="?page='.$this->next_page.'"><b>Далее</b></a> ';
}
}
function num_page(){
return ceil($this->SelectPages() / $this->per_page);
}
function page(){
if($this->cur_page == 1) $this->pageplus = $this->cur_page+6;
if($this->cur_page == 2) $this->pageplus = $this->cur_page+5; $this->pageminus = $this->cur_page-1;
if($this->cur_page == 3) $this->pageplus = $this->cur_page+4; $this->pageminus = $this->cur_page-2;
if($this->cur_page > 3) $this->pageplus = $this->cur_page+3; $this->pageminus = $this->cur_page-3;
if($this->cur_page == $this->num_page()) $this->pageminus = $this->cur_page-6;
if($this->cur_page == $this->num_page()-1) $this->pageminus = $this->cur_page-5;
if($this->cur_page == $this->num_page()-2) $this->pageminus = $this->cur_page-4;
if($this->cur_page == $this->num_page()-3) $this->pageminus = $this->cur_page-3;
while ($this->page++ < $this->num_page()){
if ($this->page == $this->cur_page){
echo $this->page;
}elseif($this->page >= $this->pageminus and $this->page <= $this->pageplus){
echo ' <a href="?page='.$this->page.'">'.$this->page.'</a> ';
}
}
}
function conntent(){
$this->select_limit = $this->db->prepare('SELECT * FROM '.$this->table.' LIMIT :start, :per_page');
$this->select_limit->bindParam(':start', $this->start, PDO::PARAM_INT);
$this->select_limit->bindParam(':per_page', $this->per_page, PDO::PARAM_INT);
$this->select_limit->execute();
while($this->row = $this->select_limit->fetch()){
$returnArr[] = $this->row;
}
return $returnArr;
}
}