Автонумерование страниц в гостевой

ALvAzaR

Новичок
Автонумерование страниц в гостевой

Здравствуйте!
Я совсем недавно изучаю php
У меня такой вопрос в трёх вариантах.
Не мог бы кто-либо намекнуть алгоритм автонумерования страниц в крипте гостевой книге словами,тоесть:
"в переменной храним общее кол-во сообщений,потом это делим и т.д."
Или прокомментировать этот код:
PHP:
$gb_on_page = "10";
$c=count($data);
if (!isset($page)) { $page=0; }
if($i>$c-1)break;
$col=$c/$gb_on_page;
echo "<center>";
if ($c<$gb_on_page){ echo ""; }
else {
echo "<b>Страницы: </b>";
if($c>$gb_on_page & $page>0){ echo "<a href=\"gb.php?page=".($page-1)."\"><<</a>"; }
for($i=0;$i<$col;$i++)
{
if(($i)!=$page)echo "[<a href=\"gb.php?page=$i\">".($i+1)."</a>] ";
else echo "<b><i>".($i+1)."</b></i>"." ";
}
}
Большая просьба не говорить,что он делает,это я знаю :)..а именно прокомменировать желательно каждую строку...
--
Ну а хочу я сделать это в такой простейшой гостевой:
PHP:
<?php
$dirct="messages";
$opd=opendir($dirct);
while($file=readdir($opd))
if(strstr($file,$gb)==true)
{$all[]="$file";}
closedir($opd);
$f=sizeof($all);
if($f>0){rsort($all);}
if($f>10)
{for($f=0;$f<10;$f++)
{include("$dirct/$all[$f]");
echo("<hr width=100>");}}
elseif($f<=0)
{echo("<span style=color:#CCCCFF;font-family:arial;font-size:11px;text-decoration:underline;font-weight:normal;>Сообщений нет</span>");}
else{foreach($all as $value)
{include("$dirct/$value");
echo("<hr width=100>");}}
?>
это отдельный скрипт вывода сообщений,если кто подскажет как здесь реализовать автонумерование..буду благодарен,только пожалуста с комментариями,я хочу понять :)
---
 

WP

^_^
Код разбирать желания нет, но беглый взгляд дал понять что сообщения в файлах. Так делать не следует. Используй СУБД (например, MySQL), или на самый худой конец [m]serialize[/m] (если нет СУБД).
А нумерация очень очень проста.
perpage = 10 (предметов (сообщений) на страницу)
total = X (всего сообщений)
numpages = ceil(total/perpage) (кол-во страниц)
pagenum = X (текущая страница)
start_pos = perpage*pagenum (первая запись на странице)
end_pos = start_pos+perpage (последняя запись на странице)
 

Фанат

oncle terrible
Команда форума
Большая просьба не говорить,что он делает,это я знаю :)..а именно прокомменировать желательно каждую строку...
довольно странная просьба
обычно, если человек пишет какой-то код, он в состоянии прокомментировать каждую его строчку
почему ты не можешь сделать это сам?

если кто подскажет как здесь реализовать автонумерование..
так ты же всё уже написал: "в переменной храним общее кол-во сообщений,потом это делим и т.д."
и всё. выводишь дальше номера страниц.

судя по всему, тебя интересует не только вывод номеров страниц, но и вывод нужной страницы?
Ну так посмотри внимательно на код
в нёмобязательно навинать с нуля, а заканчивать 10-кой?

или тебя интересует вообще автонумерация при записи?
 

ALvAzaR

Новичок
Друзья..-)..я php даже месяца не пользуюсь mySQL это нечто пока-что страшное моему уху :)..
--
WP
Спасибо вам большое что не поленились -)..
--
Если мне не померещилось,то я видел здесь сообщения,что мой вопрос противоречит правилам,поэтому удаляйте раз так..)
 

Andreika

"PHP for nubies" reader
PHP:
$gb_on_page = "10";
$c=count($data); // считаем кол-во записей в гостевой
if (!isset($page)) { $page=0; } // если страница не указана - устанавливаем ее
if($i>$c-1)break; // если некий $i больше кол-ва записей, то делаем нечто странное
$col=$c/$gb_on_page; // дробное кол-во страниц
echo "<center>";
if ($c<$gb_on_page){ echo ""; } // если все записи умещаются на одной странице делаем опять что-то странное
else { 
	echo "<b>Страницы: </b>";
	if($c>$gb_on_page & $page>0){  // если применяем побитовое умножение к 2м булевым значениям.. лана, пройдет
		echo "<a href=\"gb.php?page=".($page-1)."\"><<</a>"; 
	}
	for($i=0;$i<$col;$i++) // выводим страницы.. вот он некий загадочный $i .. как же он оказался наверху?
	{
		if(($i)!=$page)echo "[<a href=\"gb.php?page=$i\">".($i+1)."</a>] ";
		else echo "<b><i>".($i+1)."</b></i>"." ";
	}
}
еще что прокомментировать?
 

ALvAzaR

Новичок
Фанат
почему ты не можешь сделать это сам?
Ох если бы это был мой код,я бы не спрашивал..-)..
моё то,что снизу,который выводит
--
for($f=0;$f<10;$f++)
в нёмобязательно навинать с нуля, а заканчивать 10-кой?
Я хочу сказать ещё раз,эти два отрывка кода никак не связаны между собой -)..
данный цикл просто выводит 10 сообщений и всё..-)
--
судя по всему, тебя интересует не только вывод номеров страниц, но и вывод нужной страницы
Мне нужно чтобы при загрузке выводились 10 последних сообщений..если лимит превышен,то создавалась бы ссылка с номером страницы на 10ть предыдущих и т.д.
 

Фанат

oncle terrible
Команда форума
Ох если бы это был мой код,я бы не спрашивал.
не слодовало тогда его здесь вообше писать
Я хочу сказать ещё раз,эти два отрывка кода никак не связаны между собой -)..
а при чём здесь два фрагмента?
мне что теперь - второй комментировать нельзя что ли?
данный цикл просто выводит 10 сообщений и всё..-)
вот и плохо, что всё. пусть выводит НУЖНЫЕ сообщения.
Мне нужно чтобы при загрузке выводились 10 последних сообщений..если лимит превышен,то создавалась бы ссылка с номером страницы на 10ть предыдущих и т.д.
а почему было не написать это сразу, вместо многократного повторения невнятного слова автонумерация?
 

ALvAzaR

Новичок
не следовало тогда его здесь вообше писать
Просто я выдернул из другой гостевой код,который делает,то что мне надо,но который я до конца не мог понять,вот и попросил в качестве варианта ответа на мой вопрос его прокомментировать..судя по всему всех запутал этим -)
вот и плохо, что всё. пусть выводит НУЖНЫЕ сообщения.
Знаю,что плохо,вот я и хочу,чтобы всё было как у людей -)..
--
Всем спасибо кто ответил!
 

Фанат

oncle terrible
Команда форума
скажи, ты читаешь, что тебе пишут?
или работаешь в режиме монолога?
давай я повторю свой вопрос:
в коде
for($f=0;$f<10;$f++)
обязательно начинать с нуля, а заканчивать 10-кой?
 

Фанат

oncle terrible
Команда форума
а для этого обязательно начинать с нуля, а заканчивать десяткой?
если начать с 1, а закончить 11 - выведется сто?
 

Фанат

oncle terrible
Команда форума
судя по всему, второй код тоже не ты писал?
с твоими способностями к логическому мышлению такой код написать нереально

дай определение "следующей страницы" - авось тогда и дойдёт, в чём разница.

-~{}~ 26.05.06 12:27:

чем отличается первая страница от второй?
 

ALvAzaR

Новичок
ну что с дауна взять..я вас понимаю у вас ясная голова..
а у меня каша полная,потому что пхп только 4ую неделю изчаю и ещё не всё понимаю..
лично то,что мне приходит в головую на данную минуту "следущая страница" в моём случае это вывод сообщений с 11 по 21 элемент массива..
 

Фанат

oncle terrible
Команда форума
отлично!
Видишь - можешь ведь, если задумаешься?
Всего-то надо было перестать смотреть на форум, как на манну небесную, и напрячь собственные мозги.
пхп только 4ую неделю изчаю и ещё не всё понимаю..
заметь - алгоритм вывода сообшений не имеет прямого отношения к пхп!
Скажи ещё, что ты не можешь разделить сто стодолларовых купюр в кучки по 10 штучек. Можешь?
Ну так а с сообщениями какая разница?
Никакой.
Ты же даже задачу себе не ставишь!
У тебя задача - "получить следующие 10".
А решается она на пхп элементано - сам видишь.

Ну, ещё вопросы остались?
сам будешь думать, или твоими же словами тебе подсказать?
создавалась бы ссылка с номером страницы на 10ть предыдущих
что по ссылке передавать будем?
 

ALvAzaR

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

Фанат

oncle terrible
Команда форума
а вот механизм создания этой переменной, в тумане..
СЛОЖЕНИЕ.
этот механизм - сложение.
к текущему номеру страницы прибавить единицу.
опять скажешь, что это незнание пхп тебе помещало совершить эту арифметическую операцию?
 

ALvAzaR

Новичок
не скажу...
буду тренировать мозги может поумнею..)
Спасибо!
 
Сверху