|
|
|
| Ворос по статье http://www.softtime.ru/info/articlephp.php?id_article=33.
Есть допустим 7 страниц.
Как вместо << < 1|2|3|4 > >> сделать просто список страниц, т.е 1 2 3 4 5 6 7 ? | |
|
|
|
|
|
|
|
для: off
(05.09.2005 в 21:16)
| | Извинте, случайно не в ту тему, но все равно ответьте плиз!! | |
|
|
|
|
|
|
|
для: off
(05.09.2005 в 21:16)
| | Для этого последний блок следует заменить
<?php
$number = (int)($total/$num);
if((float)($total/$num) - $number != 0) $number++;
for($i = 1; $i<=$number; $i++)
{
if($page == $i)
echo " $i ";
else
echo " <a href=index.php?page=".$i.">$i</a> ";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 00:58)
| | Чего-то не работает. Есть в БД 11 запсей.
У меня $num=10;
А он выводит эти 10 записей, а ссылку на стр. 2 (где последняя 11 запись) не выводит. | |
|
|
|
|
|
|
|
для: off
(06.09.2005 в 19:26)
| | Попробуйте уменьшить значение $num скажем до 2 - как изменяется поведение скрипта? | |
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 19:56)
| | кол-во сообщ как я уже говорил 11.
если num=2, то показывает 3 стр.
если num=1, то показывает 13 стр. | |
|
|
|
|
|
|
|
для: off
(06.09.2005 в 22:18)
| | Вы бы не могли привести тот код, который у вас сейчас имеется, чтобы его можно было потестировать на локальной машине? | |
|
|
|
|
|
|
|
для: cheops
(07.09.2005 в 13:24)
| |
<?
$num= 2;
$page = $_GET['page'];
if ($page=="") $page=0;
$result = mysql_query("SELECT COUNT(*) FROM c_news_cat");
$posts = mysql_result($result,0);
$total = intval(($posts - 1) / $num) +1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
?>
|
<?
//Делаем запрос из БД
$sql = "SELECT * FROM c_news_cat order by date LIMIT $start, $num";
$result = mysql_query($sql);
... ну и выводим записи...
?>
|
<?
//Постраничная навигация
$number = (int)($total/$num);
if((float)($total/$num) - $number != 0) $number++;
for($i = 1; $i<=$number; $i++)
{
if($page == $i)
echo " $i ";
else echo " <a style='background-color:CDEDF9' href= ?mod=".$mod."&lang=".$lang_site."&page=".$i." class=pages> $i </a> ";
}
?>
|
Вот он сам код. | |
|
|
|
|
|
|
|
для: off
(09.09.2005 в 19:28)
| | Вот эти строчки
<?php
$posts = mysql_result($result,0);
$total = intval(($posts - 1) / $num) +1;
?>
|
замените на
<?php
$total = mysql_result($result,0);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.09.2005 в 12:15)
| | огромное спасибо! | |
|
|
|
|
|
|
|
для: off
(05.09.2005 в 21:16)
| | попробуй разобраться, прочитав эти сообщения:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=4163&page=1
http://softtime.ru/forum/read.php?id_forum=1&id_theme=3044&page=1
http://softtime.ru/forum/read.php?id_forum=1&id_theme=2493&page=1 | |
|
|
|
|
|
|
|
для: Денис
(07.09.2005 в 12:03)
| | cheops, ну что ты посмотрел код? | |
|
|
|
|
|
|
|
для: off
(10.09.2005 в 11:36)
| | Тут всё немножко по другому. Вот код который действительно работает:
$num = 10;
$page = $_GET['page'];
$result = mysql_query("SELECT * FROM basa");
$posts = mysql_num_rows($result);
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0)
{
$page = 1;
}
if($page > $total)
{
$page = $total;
}
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM basa LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
?>
<center><table width="700" border="1" bgcolor="#FFFFFF">
<?php
for($i = 0; $i < $num; $i++)
{
echo "<tr>
<td>Объявление добавил: ".$postrow[$i]['name']."<br>
Id объявления: ".$postrow[$i]['id']."<br>
E-mail: ".$postrow[$i]['email']."<br>
Url сайта: <a href =http://".$postrow[$i]['url'].">".$postrow[$i]['url']."</a><br>
Объявление: ".$postrow[$i]['objav']."<br>
Яндекс цитирования: <img src=http://www.yandex.ru/cycounter?http://".$postrow[$i]['url']." width=88 height=31 alt=Яндекс цитирования border=0>
</td>
</tr>";
}
?>
</table></center>
<?php
if ($page != 1)
{
$pervpage = "<a href= ./index.html?page=1><<</a>
<a href= ./index.html?page=". ($page - 1) ."><</a> ";
}
if ($page != $total)
{
$nextpage = " <a href= ./index.html?page=". ($page + 1) .">></a>
<a href= ./index.html?page=".$total.">>></a>";
}
if($page - 2 > 0)
{
$page2left = " <a href= ./index.html?page=". ($page - 2) .">". ($page - 2) ."</a> | ";
}
if($page - 1 > 0)
{
$page1left = "<a href= ./index.html?page=". ($page - 1) .">". ($page - 1) ."</a> | ";
}
if($page + 2 <= $total)
{
$page2right = " | <a href= ./index.html?page=". ($page + 2) .">". ($page + 2) ."</a>";
}
if($page + 1 <= $total)
{
$page1right = " | <a href= ./index.html?page=". ($page + 1) .">". ($page + 1) ."</a>";
}
echo "$pervpage $page2left $page1left <b> $page </b> $page1right $page2right $nextpage";
?>
|
| |
|
|
|
|
|
|
|
для: Эдуард
(11.09.2005 в 16:29)
| | C тысячей IF-оф некрасиво как-то. А что если надо будет вывести не 5 цифр, а 15. Это пол страницы IF-ами займешь. У меня где-то валялась, помоему, реализованная на циклах. Если кому надо выложу. | |
|
|
|