Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2009, 17:39   #1
Web-Gangsta
HTML, JS, CSS, PHP
Форумчанин
 
Аватар для Web-Gangsta
 
Регистрация: 20.04.2009
Сообщений: 233
Восклицание Автоматическое добавление страниц в разделе. Как?

Доброго времени суток.

У меня такой вопрос: допустим у мена есть раздел с новостями, как тоько новостей становится очень много понадобится их перенести на вторую страницу... Как сделать так что бы на сайте автоматически создавалась вторая и последующие страницы?.. Подскажите пожалуйста...
[ Вот здесь должен был быть мой юзербар... Но... ]
Web-Gangsta вне форума Ответить с цитированием
Старый 07.08.2009, 19:17   #2
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
По умолчанию

У тебя новости хранятся в БД? Если да, то просто используй LIMIT в SELECT... Создай какую-то переменную step в которой записуй текущую страницу и переменную count, в которой записывай количество новостей на одной странице, а потом просто выполняй запрос по типу
Код:
"SELECT
*
FROM
News
.......
Limit ($count-1)*$step, $count"
А ссылки на другие номера создавай с передачей параметров $step и $count через $GET, тут тебе боятся не зачто...
Ученье свет, а неученье - чуть свет и на работу

Последний раз редактировалось Gromsky; 07.08.2009 в 19:24.
Gromsky вне форума Ответить с цитированием
Старый 07.08.2009, 20:30   #3
Jensi
beneto.ru
Форумчанин
 
Регистрация: 09.03.2009
Сообщений: 174
По умолчанию

PHP код:
<?
printf
("<TABLE><TD>");

$per_page 20// Кол-во записей на страницу

// Фрагмент запроса, который отвечает за то, какие записи мы будем тащить из базы
$from_where="FROM `fotoshop_lessons`";

// и получим общее количество записей
$res=mysql_query("SELECT count(id) ".$from_where);
$row=mysql_fetch_row($res);
$total_rows=$row[0];

// узнаем общее количество страниц
$num_pages=ceil($total_rows/$per_page);

// Защищаемся от поддельных url
if ($_GET['page'] > $num_pages$_GET['page'] = 1;
if (!isset(
$_GET['page']) or empty($_GET['page']) or $_GET['page'] < 0$_GET['page'] = 1;

// Получаем номер страницы и значение для лимита
if (isset($_GET['page'])) $CUR_PAGE=($_GET['page']); else $CUR_PAGE=1;
$start=abs(($CUR_PAGE-1)*$per_page);

// Выполняем запрос и получаем данные для вывода
// Я в данном случае сортирую по дате, вы можете сортировать как вам нужно.
$query="SELECT * $from_where ORDER BY date DESC LIMIT $start,$per_page";
$res=mysql_query($query);
while (
$row=mysql_fetch_array($res)) $DATA[++$start]=$row;

// Определяем адрес страницы без переменной page
$uri=strtok($_SERVER['REQUEST_URI'],"?")."?";
if (
count($_GET)) {
  foreach (
$_GET as $k => $v) {
    if (
$k != "page"$uri.=urlencode($k)."=".urlencode($v)."&";
  }
}
  
// Заполняем массив со ссылками
for($i=1;$i<=$num_pages;$i++) $PAGES[$i]=$uri.'page='.$i;

?>
<b><? $total_rows  ?></b><br><br>
<? foreach ($DATA as $i => $row): ?>
<?
printf
"<table id='lesson_table' valign='top' align='center'>
         <tr>
         <td id='lesson_title'>
         <p id='lessons_name'><a href='show_lessons_fotoshop.php?id=%s'>%s</a></p> 
         <p id='date_lessons' >Дата добавления урока:<em style='color:#F76345;'> %s</em></p>
         <p id='author_lessons' >Автор: %s</p></td></tr> 
         <tr>
         <td><p id='description_lessons'>Описание: <br>%s</p></td>
         </tr> "
,$row['id'],  $row['title'], $row['date'], $row['author'], $row['description'] );
    
 
?>   
<? endforeach ?>
<br>
Страницы:

<!-- Проверяем нужны ли стрелки назад и в начало  -->

<?php
$perv 
$_GET['page'];
if (
$perv != 1$pervpage '<a href= lessonsFoto.php?page=1>В начало</a>  
                               <a href= lessonsFoto.php?page='
. ($perv 1) .'><</a> '; echo $pervpage;
?>

<!-- Выводим циферки -->

<? foreach ($PAGES as $i => $link): ?>
<? 
if ($i == $CUR_PAGE): ?>
<b><?=$i?></b>
<? else: ?>
<a href="<?=$link?>"><?=$i?></a>
<? endif ?>
<? 
endforeach ?>

<!-- Проверяем нужны ли стрелки вперед и в конец  -->

<?php
if ($perv != $num_pages$nextpage ' <a href= lessonsFoto.php?page='.(++$perv).'>></a>  
                                   <a href= lessonsFoto.php?page='
.$num_pages.'>В конец</a>'; echo $nextpage;
?>
</TD>
</TABLE>
Далее сам разбирайся, вариантов постраничной навигации (пейджера) много, можно короче код сделать/найти
Jensi вне форума Ответить с цитированием
Старый 07.08.2009, 22:07   #4
Web-Gangsta
HTML, JS, CSS, PHP
Форумчанин
 
Аватар для Web-Gangsta
 
Регистрация: 20.04.2009
Сообщений: 233
По умолчанию

Большое спасибо!
[ Вот здесь должен был быть мой юзербар... Но... ]
Web-Gangsta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать в меню топ-5 популярных страниц dimon8888 PHP 6 25.07.2009 08:02
добавление страниц Screame Microsoft Office Excel 7 27.05.2009 21:49
Автоматическое добавление алиаса в BDE Avalonix БД в Delphi 4 02.04.2009 10:25
Как узнать количество выданных на печать страниц Bogood Общие вопросы Delphi 3 13.03.2009 17:29
Как включить/выключить автоматическое скрытие панели задач. fen Общие вопросы Delphi 2 10.07.2007 14:25