Консультация № 141020
29.07.2008, 22:56
0.00 руб.
0 3 1
Добрый вечер еще раз :)
не могли бы вы мне подсказать php скрипт, который делает:
через DO WHile выводиться допустим 100 статей...как сделать так что бы вместо 100 новостей на старнице было 10...и под этими 10 новостями создавались ссылки на другие станицы с более старыми новостями?

зарание благодарен :)

Обсуждение

Неизвестный
29.07.2008, 23:18
общий
это ответ
Здравствуйте, Герасимов Виталий Владиславови!
Вот код вывода постранично.Код Е.Попова.
view_cat.php - текущая страница,на которой выводится новости,поменяете на свою


Приложение:
<?php
//количество новостей на страницу
$num = 10;
// Извлекаем из URL текущую страницу
@$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result00 = mysql_query("SELECT COUNT(*) FROM data WHERE cat='$cat'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start


//***********************
// запрос на вывод новостей LIMIT $start, $num- для вывода по 10 новостей
//***********************

$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);


//***********************
// здесь выводим все новости
//***********************

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_cat.php?page=1>Первая</a> | <a href=view_cat.php?page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_cat.php?page='. ($page + 1) .'>Следующая</a> | <a href=view_cat.php?page=' .$total. '>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_cat.php?page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_cat.php?page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_cat.php?page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_cat.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = ' <a href=view_cat.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=view_cat.php?page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=view_cat.php?page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=view_cat.php?page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=view_cat.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=view_cat.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню если страниц больше одной

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class="pstrnav">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}
?>
Неизвестный
30.07.2008, 00:13
общий
А можно поподробней о строках
SELECT COUNT(*) FROM data WHERE cat='$cat'
особенно cat='$cat'
и
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$db);

и если можно то можете скинуть SQL Запросы к этому скрипту? просто таблицытак будет легче понять...

Спасибо большое за помощь
Неизвестный
30.07.2008, 09:03
общий
Выборка по полю cat (судя по всему, категория статей), выбираются первые $num статей, начиная с $start.
А вообще, вопрос не в первый раз задается (и раскрывается) на данном портале. Посмотрите, например, создание постраничной разбивки на phpfaq.ru
Форма ответа