Разбиение сообщений в гостевой книге на страницы

Фанат

oncle terrible
Команда форума
ты запаришься писать в своем индексе программу, которая будет разбирать адрес.
и которая тебе вообще нафиг не нужна, поскольку с разбором - к какому скриптцу обратиться, прекрасно справляется веб-сервер
 

Vehont

Guest
ладно, ясно, значит выносим гесту из индекса...
 

Фанат

oncle terrible
Команда форума
вообще пихать скрипты в индекс - неудобно.
таким образом - index.php?page удобно показывать только статические, html страницы.
а скрипт - это самостоятельная программа.
со своими параметрами, со своими настройками дизайна и так далее.
программа сначала начала выполняться, потом загрузила оформление, потом свое содержание, потом снова оформление.
а не так, как у тебя сейчас - сначала индекс загрузил оформление, потом программа, которая уже ничего не может сделать, потом индекс грузит оформление
 

Vehont

Guest
Всё ясно, теперь скрипты будем писать отдельно

-~{}~ 28.01.05 12:53:

Так, значит страницы мы будем вызывать через ссылку с переменной
PHP:
$start
. А как мне определить что нужно выводить ссылку на другую страницу, если у примеру сообщений в гостевой 10
 

Фанат

oncle terrible
Команда форума
это очень просто. сравнить $end с количеством сообщений, и если если еколичество больше - то вывести ссылку

функция count считает количество элементов массива
 

Vehont

Guest
а потом кол-во собщений разделить на 10(кол-во сообщ. на странице) и округлить до целого числа, так мы унаем сколько
страниц должно быть и выведем на них ссылки, так?
 

Vehont

Guest
тут возникает ещё один вопрос, если на странице всего 2 сообщения, а я пытаюсь вывести первые 5, то скрипт выдаст ошибку. Можно ли сделать чтоб эта ошибка не выводилась
насколько я знаю для чего наподобее этого существует знак "@" для подавления возмущения сервера
 

Нечто

Психолог РНРClub
Введи условие существования элемента в массиве. Например, так:
PHP:
$array=file('gb.txt');
for($i=$start; $i < $end && isset($array[$i]); $i++) echo $array[$i]."<br>\n";
 

Vehont

Guest
по ходу создания вылез один глюк, вот код программы
PHP:
$start='0';
$end='5';
$array=file('mess.txt');
for($i=$start; $i < $end && isset($array[$i]); $i++) echo $array[$i]."<br>\n";
$cp=count($array);
echo"$cp<br>";
$cq=$cp/$end;
echo"$cq<br>";
$ce=gettype($cq);
echo"$ce<br>";
$cr=settype($ce, integer);
echo gettype($cr);
echo "$cr";
А вот что она выводит
12
2.4
double
Notice: Use of undefined constant integer - assumed 'integer' in C:\httpd\HtDocs\index.php on line 279
boolean1
проблема в том что скрипт не меняет тип переменной $cr на integer, а выдаёт ошибку
 

Нечто

Психолог РНРClub
Vehont, я не понял, чего ты хочешь добиться, но можешь посмотреть один из вариантов тут.
 

Vehont

Guest
В принципе я разобрался в том чём хотел, теперь стоит другой вопрос
PHP:
echo"<table align=center width=65%><tr align=left><td align=left>";
$start=0;
$end='5';
$array=file('mess.txt');
for($i=$start; $i < $end && isset($array[$i]); $i++) echo $array[$i]."<br>\n";
$qr=count($array);
$qq=count($array)/$end;
$qw=ceil($qq);
//////////
for($b=1; $b<=$qw; $b++)echo"<a href='index.php?guest&page=$b'>-$b-</a>";
//////////
echo"<center><b>&#194;&#241;&#229;&#227;&#238; &#241;&#238;&#238;&#225;&#249;&#229;&#237;&#232;&#233;:&nbsp";
echo count($array);
echo"</b></center></td></tr></table>";
ссылки я вывел, но так и не понял, как сделать чтоб на открываемых страницах хоть что то отображалось?
 

Курсий

Guest
Надо проверять существование $_GET['page'].
Если переменная существует и она не больше числа всех записей в гостевой .то выводим записи начиная с $_GET['page'].Если больше то выводим с первой записи в гостевой .Т.е. считаем что $_GET['page']. вовсе и не было.
т..е в самом начале проверяем
PHP:
$end=все записи.
if (isset($_GET['page'])) && $_GET['page']<$end)
{
$_GET['page'].=$i;
}
else{
$i=0;
}
 
Сверху