|
|
|
| http://www.softtime.ru/forum/read.php?id_forum=&id_theme=49454
код представленный на этом сайте[[[ http://www.softtime.ru/article/index.php?id_article=33 ]]]несовсем корректно работает НАПРИМЕР:
он берёт число ЗАПИСЕЙ в базе делит их на количество новостей на странице
к примеру 11 записей разделим на количество новостей на странице 3получается с округлением 4
- И В ЦИКЛЕ ВЫВОДИТ НОВОСТИ НА СТРАНИЦЕ В ИТОГЕ НА 4ОЙ СТРАНИЧЕ ОДНА НОВОСТЬ ПОЛУЧАЕТСЯ ПУСТОЙ!!!
или представьте 11 новостей и ставим выводить по 10 новостей на странице в итоге получается на 2й странице 9 ПУСТЫХ ЗАПИСЕЙ!!!! | |
|
|
|
|
|
|
|
|
для: cheops
(09.02.2008 в 13:26)
| | попробуем's....(спасиб!) | |
|
|
|
|
|
|
|
для: dimonich2004
(09.02.2008 в 15:54)
| | Взял за пример код Постраничноц навигации:
<?php
// конектимся с базе
include ("BLOCKS/connect.php");
$query = "SELECT * FROM news";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
$num=4;
print("<br>".$page."<br>");
print($num_rows);
$total=$num_rows/$num;
$total=ceil($total);
print($total);
print($total);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM news LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
$postrow=array();
while ( $postrow[] = mysql_fetch_array($result))
echo "<table>";
// Выводим новости в цикле
for($i = 0; $i < $num; $i++)
{
if (isset($postrow[$i]["id"]))
{
printf ("<hr>
<table border='0' width='100%' class='left'>
<tr>
<td align='left'>
<a href='news-full.php?id=%s'</a><p class='news-name'>%s</p>
</td>
</tr>
</table>
<table border='0' width='100%' class='left'>
<tr>
<td align='center'>
<img src='UserFiles/IMAGE/%s' border='0' width='100' height='100' align='texttop' alt='%S'>
</td>
</tr>
</table>
<table border='0' width='100%' class='left'>
<tr>
<td align='center' class='main_border'>
<p>%s</p>
</td>
</tr>
</table>
<table border='0' width='100%' class='left'>
<tr>
<td alight='left'>
<a href='news-full.php?id=%s'</a>
<p class='news-data'>подробней...</p>
</td>
<td align='right'>
<p class='news-data'>дата: %s<p>
</td>
</tr>
</table>
<hr>***
",$postrow[$i]["id"],$postrow[$i]["news_name"],$postrow[$i]["img_n"],$postrow[$i]["news_name"],$postrow[$i]["text_s"],$postrow[$i]["id"],$postrow[$i]["news_date"]);
}; }
echo "<br><br>"; // Отступ
//Теперь надо организовать навигацию. Формируем составляющие будущей навигации.
//Коды стрелки «в начало» и «назад» поместим в одну переменную, также поступим и со стрелками «в конец» и «вперед».
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = "<a href=news.php?page=1><<</a>
<a href=news.php?page=". ($page - 1) ."><</a> ";
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = " <a href=news.php?page=". ($page + 1) .">></a>
<a href=news.php?page=" .$total. ">>></a>";
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 3 > 0) $page3left = " <a href=news.php?page=". ($page - 3) .">". ($page - 3) ."</a> | ";
if($page - 2 > 0) $page2left = " <a href=news.php?page=". ($page - 2) .">". ($page - 2) ."</a> | ";
if($page - 1 > 0) $page1left = "<a href=news.php?page=". ($page - 1) .">". ($page - 1) ."</a> | ";
if($page + 3 <= $total) $page2right = " | <a href=news.php?page=". ($page + 3) .">". ($page + 3) ."</a>";
if($page + 2 <= $total) $page2right = " | <a href=news.php?page=". ($page + 2) .">". ($page + 2) ."</a>";
if($page + 1 <= $total) $page1right = " | <a href=news.php?page=". ($page + 1) .">". ($page + 1) ."</a>";
// Вывод меню
@print($pervpage.$page3left.$page2left.$page1left."<b>".$page."</b>".$page1right.$page2right.$page3right.$nextpage)."<br>";
>?
|
в принципе он работает Но меня не устраивает то что последние добавленные новости в базу выводяццо на последней странице ((((
пожалуста наведите на МЫСЛЬ как организовать вывод последних новостей на первой странице - беря в основу этот код:!? | |
|
|
|
|
|
|
|
для: dimonich2004
(11.02.2008 в 12:13)
| |
SELECT * FROM news order by news_date DESC LIMIT $start, $num
|
| |
|
|
|
|
|
|
|
для: ok computer
(11.02.2008 в 12:22)
| | при таком поставлении получееться такой вывод
Страница (1) (2) (3)
-------------------------------------------------------
6 2 1
7 3
8 4
9 5
=======================================
а меня интересует постановка в такой очереди
Страница (1) (2) (3)
-------------------------------------------------------
9 5 1
8 4
7 3
6 2
- как мне кажеться это надо менять цыкл вывода новостей или цикл выбрки из базы?! | |
|
|
|