Как сделать нумерацию страниц?

12
wiwowaya
На сайте с 11.09.2006
Offline
7
2795

Помогите чайнику, как сделать на странице чтобы страница делилась на определенное количество страниц, т.е. например как вот тут:

<html>

<head>
<title>Untitled</title>
</head>

<body>
<DIV class="show_pages"><a href="/scripts/page_70.html" onFocus="this.blur(0)">&laquo;предыдущая</a> <a href="/scripts/page_72.html" onFocus="this.blur(0)">следующая&raquo;</a> <br>Страница: <a href="/scripts/page_1.html" style="text-decoration: underline" onFocus="this.blur(0)">1</a> .. <a href="/scripts/page_63.html" onFocus="this.blur(0)">63</a> <a href="/scripts/page_64.html" onFocus="this.blur(0)">64</a> <a href="/scripts/page_65.html" onFocus="this.blur(0)">65</a> <a href="/scripts/page_66.html" onFocus="this.blur(0)">66</a> <a href="/scripts/page_67.html" onFocus="this.blur(0)">67</a> <a href="/scripts/page_68.html" onFocus="this.blur(0)">68</a> <a href="/scripts/page_69.html" onFocus="this.blur(0)">69</a> <a href="/scripts/page_70.html" onFocus="this.blur(0)">70</a> <a class="selected">71</a> <a href="/scripts/page_72.html" onFocus="this.blur(0)">72</a> </DIV>


</body>
</html>

[ATTACH]2624[/ATTACH]

Может у кого есть пошагово как делать? Буду очень благодарен

jpg 2624.jpg
Наша офисная мебель - Ваш престиж! ОФИСНАЯ МЕБЕЛЬ (http://www.orgmebel.ru)
Ёжик В Тумане
На сайте с 26.07.2006
Offline
16
#1
wiwowaya:
Может у кого есть пошагово как делать? Буду очень благодарен

вот полезное пособие:

http://www.codenet.ru/webmast/php/gbookm.php

хотя пример не самый навороченый, но есть объяснение как из базы данных вывести постранично.

Ушел в себя, забыл про форум.
Вернусь ли? Не знаю... Если нужен, пишите в аську...
antweb
На сайте с 06.11.2006
Offline
1
#2

Данный цикл поможет сделать разбитие на страницы, а именно нумеризацию (1 2 3 4...)


$num = 10; // Число записей всего.
$perpage = 7; // Кол-во, показываемых записей на странице.
$pages_count = @ceil($num/$perpage);
$pages .= 'Страницы:';
for($j=1;$j<=$pages_count;$j++)
{

if ($_GET['page'] != $j)
{
$pages .= ' <a href="?page='.$j.'"><b>'.$j.'</b></a> ';
}
else
{
$pages .= ' <b>'.$j.'</b> ';
}
}
wiwowaya
На сайте с 11.09.2006
Offline
7
#3
antweb:
$num = 10; // Число записей всего.
$perpage = 7; // Кол-во, показываемых записей на странице.
$pages_count = @ceil($num/$perpage);
$pages .= 'Страницы:';
for($j=1;$j<=$pages_count;$j++)
{

if ($_GET['page'] != $j)
{
$pages .= ' <a href="?page='.$j.'"><b>'.$j.'</b></a> ';
}
else
{
$pages .= ' <b>'.$j.'</b> ';
}
}

и совсем глупый вопрос: а куда это надо ставить? то есть в какой файл (php или tpl )&

T
На сайте с 11.08.2005
Offline
181
#4
wiwowaya:
Помогите чайнику, как сделать на странице чтобы страница делилась на определенное количество страниц, т.е. например как вот тут: ... Может у кого есть пошагово как делать? Буду очень благодарен ...

Пошаговой инструкции-ответа на ваш вопрос нет... Ведь все скрипты отличаются друг от друга и те кусочки кода, что будут работать в одном не подойдут к другому...

wiwowaya:
и совсем глупый вопрос: а куда это надо ставить? то есть в какой файл (php или tpl )&

Как правило, php скрипты находятся в файлах с расширением php.

Если хотите, могу посмотреть на Ваши скрипты и, возможно даже помочь (подробности и предложения пишите в лику)...

to: antweb

Перед тем как советовать, сначала разберитесь в сути вопроса...

Коля Дубр
На сайте с 02.03.2005
Offline
153
#5

wiwowaya, боюсь, самостоятельно такую проблему будет решить сложновато, лучше найдите программиста. antweb показал общую схему решения. А нужно еще подсчитать, сколько реально строк находится, лимиты на sql-выборку расставить, и т.д. - а тут уже важно, что за движок, как запросы формируются, т.е. не видя кода вам вряд ли объяснят, что конкретно нужно делать.

P.S. Timen, опередил =)

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
wiwowaya
На сайте с 11.09.2006
Offline
7
#6

Вот я нашел в коде у себя уже прописано, а вот че с этим дальше делать не пойму

function create_list_of_pages ($t, $block, $table, $url, $count_rows, $parent, $ord, $pages_on_list, $sort, $sqlplus, $filter_form_name)

{

if ($pages = $t->fetchBlock($block))
{

$sSQL = "SELECT * FROM ".DB_Prefix.$table." WHERE Close = 0 ".(($parent!='')?"AND ParentID = ". intval($parent):"" )." ".$sqlplus." ORDER by ".$ord."";

$result = @mysql_query($sSQL);
if ($_GET['sort']!='')
$sort_param=$_GET['sort'].'/';
if (mysql_affected_rows()>0) {

$str = '<ul id="catalog_full_way">';
$kolich_rows = @mysql_num_rows($result);
//echo($kolich_rows);
$cell = ($kolich_rows/$count_rows);

if (strpos($cell,".") == true) $cell = @ceil($cell);
//echo($_GET['page'].$pages);
$list_pages = ($_GET['page']/$pages_on_list);

if (strpos($list_pages,".") == true) $list_pages = @ceil($list_pages);
if ($list_pages>1)
{
$h=($list_pages-1)*$pages_on_list+1;
$str .='<li ><a '.(isset($filter_form_name)?'onclick="document.'.$filter_form_name.'.action=\'':'href="').$url.'/'.$_GET['id'].'/page'.($h-1).'/'.$sort_param.''.(isset($filter_form_name)?'\'; document.'.$filter_form_name.'.submit();':'').'">&laquo;</a></li>';
}
else
$h=1;
$i=$h-1;
$g=$list_pages*$pages_on_list;



while($h <= $cell && $h <=$g) {

$str .='<li><a '.(isset($filter_form_name)?'onclick="document.'.$filter_form_name.'.action=\'':'href="').$url.((isset($_GET['id']))?'/'.$_GET['id']:'').'/page'.$h.'/'.$sort_param.''.(isset($filter_form_name)?'\'; document.'.$filter_form_name.'.submit();':'').'" '.(($h==$_GET['page'])?'class="active"':'').'>'.(($i*$count_rows)+1).'-'.(($h==$cell)?($kolich_rows):(($i*$count_rows)+$count_rows)).'</a></li>';
$h++;
$i++;
}
if ($cell>$h)
$str .='<li><a '.(isset($filter_form_name)?'onclick="document.'.$filter_form_name.'.action=\'':'href="').$url.((isset($_GET['id']))?'/'.$_GET['id']:'').'/page'.$h.'/'.$sort_param.''.(isset($filter_form_name)?'\'; document.'.$filter_form_name.'.submit();':'').'">&raquo;</a></li>';
$str.='<li><a '.(isset($filter_form_name)?'onclick="document.'.$filter_form_name.'.action=\'':'href="').$url.((isset($_GET['id']))?'/'.$_GET['id']:'').'/'.$sort_param.'all/'.(isset($filter_form_name)?'\'; document.'.$filter_form_name.'.submit();':'').'">все</a></li>';
$str .= '</ul>';
if ($sort!='')
{
$str .= '<div id="catalog_full_way" style="text-align:right;"><ul id="catalog_full_way">';
$str .='<li>сортировать по:</li>';
foreach($sort as $key => $val) {

$str .='<li><a '.(isset($filter_form_name)?'onclick="document.'.$filter_form_name.'.action=\'':'href="').$url.((isset($_GET['id']))?'/'.$_GET['id']:'').'/'.$key.'/'.((isset($_GET['all']))?'all/':'').(isset($filter_form_name)?'\'; document.'.$filter_form_name.'.submit();':'').'" '.(($key==$_GET['sort'])?'class="active"':'').'>'.$val.'</a></li>';
}
$str .= '</ul></div>';
}

$pages->assign($block, $str);
$t->assign($block, $pages);
$pages->reset();
}
}

return $t;
}


function include_pages ($t, $block_name, $pages_key, $pages_val) {
$pages = $t->fetchBlock($block_name);
$pages->assign($pages_key, $pages_val);
$t->assign($block_name, $pages);
$pages->reset();
return $t;
}
Mmonger
На сайте с 01.12.2005
Offline
165
#7

Эта функция выводит список, полученный по результату выполнения запроса:

$sSQL = "SELECT * FROM ".DB_Prefix.$table." WHERE Close = 0 ".(($parent!='')?"AND ParentID = ". intval($parent):"" )." ".$sqlplus." ORDER by ".$ord."";

Вы пробовали запускать функцию create_list_of_pages? Если да, то что в её работе вас не устраивает?

Всё будет хорошо, но мы приложим усилия!
wiwowaya
На сайте с 11.09.2006
Offline
7
#8
Mmonger:
Эта функция выводит список, полученный по результату выполнения запроса:
$sSQL = "SELECT * FROM ".DB_Prefix.$table." WHERE Close = 0 ".(($parent!='')?"AND ParentID = ". intval($parent):"" )." ".$sqlplus." ORDER by ".$ord."";
Вы пробовали запускать функцию create_list_of_pages? Если да, то что в её работе вас не устраивает?

Ну а как эту фунцию запустить? Если прописать {create_list_of_pages} то так я делал и у меня ничего не получилось, а по другому не понимаю как, говорю же чайник!!!

wiwowaya
На сайте с 11.09.2006
Offline
7
#9

Дело в том что в нтмле я немного разбираюсь, подправить там чтото и подобное, вот например первую страницу сам сделал, а вот что касается самих функций и тп не понимаю

bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#10

1) Достаете из БД (или из любого другого источника) все строки.

2) Считаете количество строк

3) Делите на количество строк на странице, округляете до ближайшего большего целого (функция ceil() с PHP) - получаете количество страниц

4) Достаете из БД только строки из текущей страницы (' ... LIMIT ' . (($page - 1) * PAGE_ROWS) . ', ' . PAGE_ROWS', где PAGE_ROWS - количество строк на странице

5) Формируете пейдж-бар по алгоритму antweb.

bondarevpipes.com (http://ru.bondarevpipes.com/)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий