Народ помогите обьяснить, и кто сделает постраничную навигацию
$m = mysql_query("SELECT * FROM `tablicaaa`");
$i = $start + 1;
while ($my = mysql_fetch_array($m)) {
echo '• ['.$i.'] ' . $my['name'] . ' ('.$my['data'].')<br/>Cообщение:<br/>'.$my['message'].'<br/>* * *<br/>'; }
Sten, http://xwab.mobi/forum/viewtopic.php?t=385
http://xwab.mobi/forum/topic83-0-asc-75
пост 90:) я это использую
Поставил, сообщения не выводят... Это DESC LIMIT ".$navig->begin.", ".$navig->pnumber." убираю то выводит.капец
02 Мар 2012, 23:05Sten,
Для начала создай файл PageNavigator.php
В нём размести код:
[php:1:b6ed8fef88]
class Navigation {
/* Автор класса Okula (Александр Третьяков)
Немного коментариев:
$page это номер страницы переданной из $_GET параметра, предварительно отфильтрованна
$pnumber это число элементов выводимых на страницу
$begin это число от которого начинается отсчёт в SQl запросе
$colp это общее количество элементов находящихся в базе
*/
public $pnumber, $begin, $page, $colp;
function __construct($pnumber, $page, $colp) {
$this->pnumber = $pnumber;
$this->page = $page;
$this->colp = $colp;
$this->navi();
}
/**
* Готовим данные для навигации
*/
private function navi() {
if($this->page == 0) $this->page = 1;
if($this->pnumber < 5) $this->pnumber = 5; else $this->pnumber = $pnumber;
if($this->colp/$this->pnumber < $this->page) $this->page = ceil($this->colp/$this->pnumber);
$this->begin=($this->page-1)*$this->pnumber;
}
/**
* Постаничная навигация
*/
function Navigation() {
$number = (int) ($this->colp/$this->pnumber);
if($this->colp >= ($this->pnumber+1)) {
if((float) ($this->colp/$this->pnumber)-$number !=0) $number++;
echo "<div>";
if($this->page == "1") {echo"<< Пред. |";}
if($this->begin>0) {
echo "<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'><< Пред.</a>|";
}
if($this->colp>$this->begin+$this->pnumber) {
echo "|<a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>След.>></a>";
}
if($number == $this->page) {echo"| След.>>";}
$all = ceil($this->colp/$this->pnumber); $i=1; $c=""; $tt=$this->page;
while($i<=$all) {
if($i<=3 || $i==$tt- 1 || $i==$tt || $i==$tt+1 || $i>=$all-2) {
$ii="<a href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>";
if($i==$tt) {
if($i!=$all){ $c.= "<b>".$i."</b>,";
} else {$c.= "<b>".$i."</b>";}
}
else { if($i!=$all){ $c.= $ii.",";} else{$c.= $ii;}
}
} else {$c.= "."; }
$i++;
}
$c = preg_replace("/[,][.]+/", "...", $c);
echo "<br/>".$c."<br/></div>";
}
}
}
[/php:1:b6ed8fef88]
Ниже, код вывода
[php:1:b6ed8fef88]
include_once 'PageNavigator.php'; // подключаем класс навигации
$page = !empty($_GET['page']) ? abs((int)$_GET['page']) : 1; //получаем номер страницы
$pnumber = "10"; //Сколько элементов выводить на страницу
$colp = mysql_num_rows(mysql_query("SELECT `id` FROM `tablicaaa`")); // Общее кол-во записей
$navig = new Navigation($pnumber, $page, $colp);
$m = mysql_query("SELECT * FROM `tablicaaa` ORDER BY `id` DESC LIMIT ".$navig->begin.", ".$navig->pnumber);
$i = $start + 1;
while($my = mysql_fetch_array($m)) {
echo '• ['.$i.'] ' . $my['name'] . ' ('.$my['data'].')<br/>Cообщение:<br/>'.$my['message'].'<br/>* * *<br/>';
}
$navig->Navigation();
[/php:1:b6ed8fef88]