Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Постарничный вывод данных, помогите. (http://forum.oszone.net/showthread.php?t=50421)

slaine 14-06-2005 16:54 332735

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

1.php
=====

Код:

<head>
<META http-equiv=content-type content="text/html; charset=windows-1251">
<style>
A:link {color: #000000; text-decoration: underline; font-family: tahoma; font-size: 11px; font-weight: normal};
A:visited {color: #000000; text-decoration: underline; font-family: tahoma; font-size: 11px; font-weight: normal};
A:hover {color: #000000; text-decoration: none; font-family: tahoma; font-size: 11px; font-weight: normal};
</style>
</head>
<CENTER>
<a href="2.php">Добавить сообщение</a>
<BR>
<BR>
<?
$file = file("aaa.txt");
$count = count($file);
$file = array_reverse($file);
if (empty($start)){
$start = 0;
}
if ($start < 0){
$start = 0;
}
echo "<CENTER><B>".(($start / 10) + 1)."</B></CENTER>";
echo "<table border=0><tr><td width=120 align=left>";
if ($count > $start + 10){
echo "<a href=1.php?start=".($count - $count % 10).">В конец</a> . ";
echo "<a href=1.php?start=".($start + 10).">Вперёд</a> . ";
}
echo "</td>";
echo "<td align=center>";

if ($count > $start + 10 || $start > $count - $count){
for ($i = ($count - $count); $i <= ($count - $count % 10) / 10; $i ++){
echo "<a href=1.php?start=".($i * 10).">".($i + 1)."</a> . ";
}
}

if ($count > $start + 10){
$count = $start + 10;
}
echo "</td>";
echo "<td width=120 align=right>";
if ($start > $count - $count){
echo "<a href=1.php?start=".($start - 10).">Назад</a> . ";
echo "<a href=1.php?start=".($count - $count).">В начало</a>";
}
echo "</td></tr></table>";
echo "<table width=360 border=1>";
for ($i = $start; $i < $count; $i ++){
$line = explode("\t", $file[$i]);
echo "<tr valign=top>";
echo "<td bgColor=#ffffff>".$line[0]."</td>";
echo "<td bgColor=#ffffff>".$line[1]."</td>";
echo "<td bgColor=#ffffff>".$line[2]."</td>";
echo "<td bgColor=#ffffff>".$line[3]."</td>";
echo "</tr>";
}
echo "</table>";
?>
<BR>
<a href="2.php">Добавить сообщение</a>
</CENTER>

Здесь идёт запись в файл.
2.php
=====

Код:

<?
if (isset($_GET['name']) && isset($_GET['city']) && isset($_GET['country'])){
$a = ucfirst(htmlspecialchars($_GET['name']));
$b = ucfirst(htmlspecialchars($_GET['city']));
$c = ucfirst(htmlspecialchars($_GET['country']));
if (empty($a) || empty($b) || empty($c)){
echo " ";
} else {
$t = date("Y.m.d, H:i");
$file = fopen("aaa.txt", "a+");
flock($file, 2);
fwrite($file, $a."\t".$b."\t".$c."\t".$t."\n");
flock($file, 3);
fclose($file);
echo "<html><head>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=1.php'>";
echo "</html></head>";
}
}
?>
<table border=0 cellspacing=0 cellpadding=0>
<form action=2.php method=get>
<tr>
<td>Name:</td>
<td><input type="text" name=name size=20 maxlength=20></td>
</tr>
<tr>
<td>City:</td>
<td><input type="text" name=city size=20 maxlength=20></td>
</tr>
<tr>
<td>Country:</td>
<td><input type="text" name=country size=20 maxlength=20></td>
</tr>
<tr>
<td colspan=2 align=right><input type="submit" value=" OK "></td>
</tr>
</form>
</table>
<BR>
<a href="1.php">View results</a>


Prisoner 15-06-2005 13:53 333185

А вы уверены, что жирная часть вообще работает? Имхо, у операции "-" приоритет выше, чем у вычисления остатка. У вас вообще забавная форма записи числа 0, если бы не тот же самый приоритет (у условий он выше чем у "+" и "-").

slaine 15-06-2005 16:51 333273

Жирная часть работает, но не так как надо.

Цитата:

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

Цитата:

У вас вообще забавная форма записи числа 0
Да, это я увлёкся(писал взахлёб).

Но в итоге я всё переписал, и всё прекрасно без ошибок работает.
И наконец я могу спать спокойно.
Если вдруг кому интересно, то могу показать(с коментариями) рабочий скрипт с *.txt или с БД
вот такого плана: Вконец Вперёд 1.2.3. Назад Вначало.

Prisoner 16-06-2005 02:22 333407

Да, согласен, на счет приоритета забираю свои слова назад и приношу извинения. Прична заблуждения ниже. Скверно, рушатся все иллюзии :).
Скрин используемого мануала (~10k)
Дока на php.net (en)
Дока на php.net (ru)
В общем не трудно заметить, что в России все как всегда наоборот...


Время: 09:26.

Время: 09:26.
© OSzone.net 2001-