разбитие массива по странично

left В продолжение прошлого поста еще один класс.
На этот раз для разбиения массива по странично.

Для чего использывать думаю догадаетесь) например постраничный вывод новостей или гостевой)
Пример вызова:

$map=new StartPage;//инициализация класса
$arr=$map->StartPageMas($array, $page, $count, $url);
#$arr - Массив результата работы класса;
#$array - Массив для разбивки;
#$page - Имя переменной GET с номером страницы (page);
#$count - Количество записей на страницу;
#$url - Адрес к страницам (/map.php?page=)
#Обработка
echo '

    ';
    foreach($arr as $v){
    echo "

  • $v[name]
  • ";
    }
    echo '

';
#Вывод навигатора
echo $map->NextPageMas();

Код самого класса

Внешний вид навигатора настраивается в NextPageMas()


class StartPage{
var $masiv;
var $urls;
var $kol;
var $page;function StartPageMas($mas, $url, $kol, $page){
$this->masiv = $mas;
$this->urls = $url;
$this->kol = $kol;
$this->page = $page;

if($_GET[$this->urls]>(count($this->masiv)/$this->kol))$_GET[$this->urls]=$url=0;
if(!isset($_GET[$this->urls])) $_GET[$this->urls]=0;
$start = $this->kol * $_GET[$this->urls];
$startp = $this->kol * $_GET[$this->urls] + $this->kol;
$kolvo = count( $this->masiv );
if($startp <= $kolvo) $stop = $startp;
else if($kolvo < $startp) $stop = $kolvo;
$s=0;
foreach($this->masiv as $key=>$val){
if($start<=$s)$mm[$key]=$this->masiv[$key];
$s++;
if($s==$stop) break;
}
return $mm;
}
function NextPageMas(){
$start = $this->kol * $_GET[$this->urls];
$startp = $this->kol * $_GET[$this->urls] + $this->kol;
$kolvo = count( $this->masiv );
$sh=$this->kol;
if($start==0) $start=1;
if($startp <= $kolvo) $stop = $startp;
else if($kolvo < $startp) $stop = $kolvo;
$namber=0;
$url_namber=1;
$list=$start_ter='';
$list= '

Страницы: ';
if($_GET[$this->urls]>0){
$num=$_GET[$this->urls] - 1;
$list.= 'предыдущая ';
}
for($i=0; $i < $kolvo; $i=$i+$sh){

if($namber==$_GET[$this->urls]){
$list.= ''.$url_namber.' ';
$namber++;
$url_namber++;
}else{
$list.= ''.$url_namber.' ';
$namber++;
$url_namber++;
}
}
if($_GET[$this->urls]*$sh+$sh<$kolvo){
$num=$_GET[$this->urls] + 1;
$list.= 'следующая ';
}
return $start_ter.$list.'

';
}
}

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong
нужна разработка сайтов?

Читай с RSS. Не пропусти интересное)

Теги:

Вторник, 24 Фев 2009 PHP, Мой скрипт

Комментариев пока нет.

Ваш отзыв

Читать в Яндекс.Ленте
регистрация доменов
Зарегистрируй себе домен!
.RU - 99 рублей в год
www.
Блогун - реклама в блогах. Хостинг для блогов

Поиск

 

Комментарии