Перейти к содержимому


Пользователь месяца
ShowPrint ShowPrint 1-й за Сентябрь
Очков активности: 283 2 темы, 21 сообщение, 7 баллов репутации
Сайт: ShowPrint.ru
ТОП самых активных за этот месяц
  • Фотография Medvedoc
    #1

    Medvedoc
    Очков активности: 510 9 тем, 58 сообщений, 4 балла репутации

  • Фотография ShowPrint
    #2

    ShowPrint (ShowPrint.ru)
    Очков активности: 312 Вне конкурса за определение пользователя месяца

  • Фотография Ixman
    #3

    Ixman (o5cat.ru)
    Очков активности: 216 0 тем, 24 сообщения, 6 баллов репутации

  • Фотография BLIK
    #4

    BLIK
    Очков активности: 210 Вне конкурса за определение пользователя месяца

  • Фотография Игорь Ку
    #5

    Игорь Ку (dudesday.ru)
    Очков активности: 126 4 темы, 9 сообщений, 4 балла репутации

  • Фотография WGN
    #6

    WGN (worldgamenews.com)
    Очков активности: 88.5 Вне конкурса за определение пользователя месяца

  • Фотография Алексей111
    #7

    Алексей111 (xvideo24.ru)
    Очков активности: 66 8 тем, 20 сообщений, 1 балл репутации

  • Фотография yuran
    #8

    yuran (yurbol.ru)
    Очков активности: 37.5 1 тема, 22 сообщения, 1 балл репутации

  • Фотография Zevss
    #9

    Zevss (domles43.ru)
    Очков активности: 22.5 2 темы, 9 сообщений, 1 балл репутации

  • Фотография falka
    #10

    falka (mygoodjob.ru)
    Очков активности: 16.5 3 темы, 2 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 26.09.2018
  • Яндекс выдача: 20.10.2018
Топ 5 участников по репутации


Сортировка страниц по 10 обзоров на каждой? как сделатЬ?

#1 Arukard1

Arukard1
  • Неактивные
  • 193 сообщений
  • Репутация: 0
0

Отправлено 22 December 2008 - 23:43

Доброе время суток.
У меня возник такой вопрос вот содержит Бд у меня 100 статей
Я на 1-вую страницу вывожу 10
А как сделать чтоб дальше можно было листать стринци и на каждой из них было по 10 статей
тоесть 100 статей, розместить на 10 страницах

как реализовать такой вывод из бд?

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 23 December 2008 - 01:15

Из БД очень просто! Есть такой параметр как LIMIT - ограничивает отбор записей с какой-то, определённым количеством.
SELECT * FROM news ORDER BY date LIMIT {$start},{$count}

Переменная $count хранится в конфиге и обозначает количество выводимых записей на страницу(из запроса)
Переменная $start постоянно меняется в зависимости от выбранной страницы
$start = $count * intval($_GET['page']);
Страницы для обработки формируются с 0. Не стоит так же забывать, что сначала нам нужно определить количество страниц, чтобы MySQL случайно не выдал ошибку при обращении к несуществующей странице. (Например пользователь может в строке браузера ввести номер страницы которой нет, тогда должно быть условие на проверку отрицательности передаваемого числа, и максимума страниц)

Если вы так захотите, могу выложить класс для работы с постраничной навигацией ;)
  • 0

#3 Arukard1

Arukard1
    Topic Starter
  • Неактивные
  • 193 сообщений
  • Репутация: 0

Отправлено 23 December 2008 - 09:06

я просто сделаю проверку через условие и если такой страници не будет ошибки тоже не будет
оооооо. выложи пожалуйста )
  • 0

#4 FordogeN

FordogeN
  • Неактивные
  • 1414 сообщений
  • Репутация: 0

Отправлено 23 December 2008 - 10:50

Если вы так захотите, могу выложить класс для работы с постраничной навигацией ;)

Выкладуй, не помешает
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#5 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 24 December 2008 - 00:19

pages.class.php
<?php

class pages{

/* параметры класса */
var $pagename;
var $totalpages;
var $recordsperpage;
var $maxpagesshown;
var $currentstartpage;
var $currentendpage;
var $currentpage;
//first and last inactive
var $firstinactivespan;
var $lastinactivespan;
//must match $_GET['offset'] in calling page
var $firstparamname="p";
//use as "&name=value" pair for getting
var $params;
//text for navigation
var $strfirst = "[В начало]";
var $strlast = "[В конец]";
//for error reporting
var $errorstring;

/*конструктор - вызывается при создании объекта класса*/
function pages($pagename, $totalrecords, $recordsperpage, $recordoffset, $maxpagesshown=4){
$this->pagename=$pagename;
$this->recordsperpage=$recordsperpage;
$this->maxpagesshown=$maxpagesshown;
//already urlencoded
if(!$this->checkRecordoffset($recordoffset, $recordsperpage)){
echo $this->errorstring;
exit;
}
$this->setTotalPages($totalrecords, $recordsperpage);
$this->calculateCurrentPage($recordoffset, $recordsperpage);
$this->createInactiveSpans();
$this->calculateCurrentStartPage();
$this->calculateCurrentEndPage();
}

function setInactiveSpanName($name){
$this->inactivespanname=$name;
//call function to rename span
$this->createInactiveSpans();
}

/* Занести параметр */
function setFirstParamName($name){
$this->firstparamname=$name;
}

/* Вернуть параметр */
function getFirstParamName(){
return $this->firstparamname;
}

/* Формирование и вывод всего - Шаблон вывода */
function getNavigator(){
//wrap in div tag
$strnavigator= "<div>";
//loop through displayed pages from $currentstart
$strnavigator.=$this->getPageNumberDisplay();
for($x=$this->currentstartpage;$x<$this->currentendpage;$x++){
//make current page inactive
if($x==$this->currentpage){
$strnavigator.= " <span><b>";
$strnavigator.= $x+1;
$strnavigator.= "</b></span> ";
}else{
$strnavigator.= $this->createLink($x, $x+1);
}
}
$strnavigator.="<br>";
//output movefirst button
if($this->currentpage == 0){
$strnavigator.=$this->firstinactivespan;
}else{
$strnavigator.= $this->createLink(0, $this->strfirst);
}
$strnavigator.=" <b>: :</b> ";
//move last button
if($this->currentpage==$this->totalpages-1){
$strnavigator.= $this->lastinactivespan;
}else{
$strnavigator.=$this->createLink($this->totalpages -1, $this->strlast);
}
$strnavigator.= "</div>";
return $strnavigator;
}

/* Создание ссылок-страниц */
function createLink($offset, $strdisplay ){
$strtemp= "<a href=\"?$this->pagename&$this->firstparamname=";
$strtemp.= $offset;
$strtemp.= "$this->params\">$strdisplay</a>\n";
return $strtemp;
}

/* формирование HTML общего числа страниц */
function getPageNumberDisplay(){
$str= "<span>Страницы ($this->totalpages) &rarr; </span>";
return $str;
}

/* Высчитать общее число страницы */
function setTotalPages($totalrecords, $recordsperpage){
$this->totalpages=ceil($totalrecords/$recordsperpage);
}

/* Правильность введённой страницы */
function checkRecordoffset($recordoffset, $recordsperpage){
$bln=true;
//if recordoffset=0 won't show error
if($recordoffset%$recordsperpage!=0){
$this->errorstring="Error - Offset not a multiple of records per page.";
$bln=false;
}
return $bln;
}

/* Текущая страница */
function calculateCurrentPage($recordoffset, $recordsperpage){
$this->currentpage=$recordoffset/$recordsperpage;
}

/* Формирование [первая] и [последняя] неактивных */
function createInactiveSpans(){
$this->lastinactivespan="<span>$this->strlast</span>\n";
$this->firstinactivespan="<span>$this->strfirst</span>\n";
}

/* Вывод предыдущих n страниц перед текущей страницей, если лимит превышает первую страницу, то вывод будет идти с первой страницы */
function calculateCurrentStartPage(){
$this->currentstartpage = $this->currentpage - $this->maxpagesshown;
if($this->currentstartpage < 0)
$this->currentstartpage = 0;
}

/* Вывод последующих n страниц после текущей страницы, если лимит превышает общее число страниц, то вывод будет идти до последней */
function calculateCurrentEndPage(){
$this->currentendpage = $this->currentpage + $this->maxpagesshown;
if($this->currentendpage > $this->totalpages)
$this->currentendpage = $this->totalpages;
}
}
?>


Работа с классом
................................

$page = @intval($_GET['page']);
if (empty($page)){
$page = 1;
$record = 0;
} else {
//calc record offset
$record = $page * $perpages;
}

........................................
// Работа с базой, вывод данных постраничных и другой информации какой нужно
.............................................

$totalrecords = mysql_query($query); //Запрос для определения общего числа записей.
$numpages = ceil($totalrecords/$perpages);

/* Если страниц больше 1 */
if($numpages > 1){

/*Постраничный навигатор*/
$nav = new pages("index.php",$totalrecords, $perpages, $record, 3); /*левый параметр, общее количество записей, сколько записей на страницу, с какой записи считать, сколько страниц выводить до и после текущей*/
echo $nav->getNavigator(); // Вывод навигатора страниц

}

..................................

  • 0

#6 Arukard1

Arukard1
    Topic Starter
  • Неактивные
  • 193 сообщений
  • Репутация: 0

Отправлено 24 December 2008 - 09:50

Нефига себе
Сенк
  • 0

#7 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 24 December 2008 - 16:29

Всегда пожалуйста. Я просто купил себе книгу PHP 5 ООП и прочитал её от корки до корки. Разобрал примеры. Это один из примеров подогнанный под мои нужды ;)
  • 0

#8 FordogeN

FordogeN
  • Неактивные
  • 1414 сообщений
  • Репутация: 0

Отправлено 25 December 2008 - 10:36

хм... а она в цифровом виде?


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#9 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 25 December 2008 - 18:02

Вида
[в начало] [предыдущая] 1 2 3 4 5 ... [следующая] [в конец]
[предыдущая] и [следующая] убрал для своих нужд, не нужны они мне были, можно вернуть ;)
  • 0

#10 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 05 November 2009 - 13:50

Я так думаю, вопрос был про формат книги! =)
  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru