[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Постраничный вывод
DeeKeiD
Нашол в интернете пример постраничного вывода.
не получается сделать страницы(навигации) по центру и на 1 уровне sad.gif

Нужно что то типо этого:
[ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 ]
Код:
PHP
<?
    
$nums 1;
    if (isset(
$_GET['page'])) {
    
$page intval($_GET['page']);
    }
    else { 
$page 1; }
    
$query "SELECT COUNT(*) AS `goods_total` FROM `tovari`";
    
$sql mysql_query($query) or die(mysql_error());
    
$row mysql_fetch_assoc($sql);
    
$elements $row['goods_total'];
    
$pages ceil($elements/$nums);
    if (
$page 1) { $page 1; }
    elseif (
$page $pages) { $page $pages; }
    
$start = ($page-1)*$nums;
    
    if (
$start 0$start 0;
    
$query "SELECT * FROM `tovari` ORDER BY `id` DESC LIMIT {$start}, {$nums}";
    
$sql mysql_query($query) or die(mysql_error());
    
    while (
$row mysql_fetch_assoc($sql)) {
        echo 
$row[name];
    }
    
    
// Навигация
    
$neighbours 6;
    
$left_neighbour $page $neighbours;
    if (
$left_neighbour 1$left_neighbour 1;

    
$right_neighbour $page $neighbours;
    if (
$right_neighbour $pages$right_neighbour $pages;
    if (
$page 1)
    {
    echo 
'<a href="?page=1">Начало</a> <a href="index.php?x=news&page=' . ($page-1) . '"><-</a>';
    }
    for (
$i=$left_neighbour$i<=$right_neighbour$i++)
    {
    if (
$i != $page)
    {
        echo 
'<a href="index.php?x=news&page=' $i '">' $i '</a>';
    }
    else
    {
        
// выбранная страница
        
echo '[<b>' $i '</b>]</div>';
    }
    }
    if (
$page $pages)
    {
    echo 
'<a href="index.php?x=news&page=' . ($page+1) . '">-> </a> <a href="index.php?x=news&page=' $pages '">Конец</a>';
    }




Спустя 8 минут, 21 секунда (26.07.2009 - 17:07) Krevedko написал(а):
эхх..мне эта байда в самом ближайшем времени предстоит blink.gif

Спустя 10 часов, 54 минуты, 48 секунд (27.07.2009 - 04:02) DeeKeiD написал(а):
Народ, не игнорируйте тему ;( я уже скриптов 6 перепробовал..

Спустя 1 час, 37 минут, 55 секунд (27.07.2009 - 05:40) kirik написал(а):
погляди тут

Спустя 8 часов, 45 минут, 23 секунды (27.07.2009 - 14:25) ApuktaChehov написал(а):
Вот рабочий и ооочень простой скрипт:
PHP
//Устанавливаем колличество записей на одной странице
$page_posts=25;

//Определяем общее колличество записей имеющиеся в базе
$db_vb=mysql_query("select * from materials");
$total_posts=mysql_num_rows($db_vb);

//Определяем общее колличество страниц 
$pages=ceil($total_posts/$page_posts);
//Если страница грузится впервые, тогда устанавливаем параметр для запроса SQL как 0, то есть все будет грузится с первой записи.
if(!isset($_GET['pg'])){$_GET['pg']=0;}

//Лимитируем записи
$db_v=mysql_query("select * from materials ORDER BY id DESC LIMIT $_GET[pg],$page_posts");


Все мы определил механизм лимитированного запроса к SQL
Теперь нужно сделать вывод номеров страниц и в этом нам поможет (for).
PHP
//Автогенерация ссылок
for($i=1; $i<=$pages; $i++){
//Определяем номер записи с которой начнет грузиться каждая новая страница
//если вдруг переменная не определена считаем, что страница грузится впервые и устанавливаем отчет записей с первой. 
if(!isset($PG_END)){$PG_END=0;
}else{
$PG_END=$PG_END+$page_posts;}
//Определяем номер текущей страницы для выделения его при выводе списка страниц
$nrst=$_GET['pg']/$page_posts+1;
//Условие выделения текущей страницы
if($nrst==$i){$m="<b>"; $m1="</b>";$font="#bbbbbb";
}else{
$m=""; $m1="";$font="#dddddd";}
//Выводим стананицы на экран
echo("<td align=center width=22 bgcolor=$font><a href=dvju.php?prog_mode=$_GET[prog_mode]&pg=$PG_END>$m$i$m1</a></td>");
}


Предупреждаю, скрипт - чистой воды дыра. Необходима защита хотя бы от SQL инъекций.

Скрипт должен работать, хоть и писал я его черт знает когда wink.gif

Спустя 22 дня, 1 час, 48 минут, 10 секунд (19.08.2009 - 16:14) SeTT.MF написал(а):
А возможно ли создание постраничного навигатора для галлереи без SQL и других БД ??

Спустя 9 минут, 30 секунд (19.08.2009 - 16:23) ApuktaChehov написал(а):
Можно. Только я не знаю как! laugh.gif

Спустя 2 минуты, 56 секунд (19.08.2009 - 16:26) sergeiss написал(а):
Цитата (SeTT.MF @ 19.08.2009 - 17:14)
А возможно ли создание постраничного навигатора без SQL и других БД ??


Конечно возможно!!! wink.gif

Делаешь всё на файлах. По ходу дела учишься предотвращать совместный доступ к файлам, делаешь разбивку на куски, чтобы файлы не превышали некоторые разумные пределы, и делаешь еще 33 разных процедуры, не считая 1001 мелочи плюс 10000 граблей.

В итоге: убиваешь кучу времени и сил на то, чтобы создать самодельное и медленно работаеющее, жалкое подобие БД. И понимаешь, что лучше было создать это всё с помощью уже готовой БД.


_____________
Бесполезно просить пощады у цезаря
Фатальная ошибка : Звонок в неопределенную функцию ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.