За последние 24 часа нас посетили 19658 программистов и 1655 роботов. Сейчас ищут 1496 программистов ...

Постраничная навигация!!!

Тема в разделе "PHP для новичков", создана пользователем Killer_S, 5 янв 2011.

  1. Killer_S

    Killer_S Активный пользователь

    С нами с:
    12 мар 2010
    Сообщения:
    12
    Симпатии:
    0
    Здраствуйте!
    У меня такая ситуация.Я начинающий сделал небольшой сложности сайт и хотел сделать постраничную навигацию,нашол много скриптов,но в моем случае они не помогут.
    Вот вопрос?
    У меня 1 страничка в материалах и там 30 фотографий и я туда тулил постраничную навигацию,но потом понял ошибку ведь страничка та одна,вот и выводит 1,скажите можно сделать какуето привязку к фотографиям или что-то ещё,чтоб выводило по 5 фотографий,а не сразу все 30?
    Если кто сможет напиште,заранее благодарен)...
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Привязку сделать можно и способов может быть сколько угодно, но конкретный пример реализации зависит от того, что у тебя там есть...
     
  3. Belviser

    Belviser Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Москва
    Пагинаторов вагон и маленькая тележка. Представьте, что страничек у вас не пять а пять тысяч и подумайте, какой именно пагинатор Вам нужен
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Killer_S
    Если делать с одной страницей, то лучше всего подойдет AJAX.
    Отправляется скрипту номер страницы, рассчитывается сдвиг и выбираются соответствующие данные, которые потом отправляются назад. Хотя при таком подходе точно так же (с таким же успехом) делается самый обычный пагинатор через передачу методом GET номера страницы.
     
  5. forest69

    forest69 Активный пользователь

    С нами с:
    14 сен 2010
    Сообщения:
    34
    Симпатии:
    0
    Адрес:
    Люберцы
    Всем добрый день!
    Тут вот возникла проблемка.
    Есть постраничная навигация и есть такая структура:
    1. Есть главная страничка в которую по нажатию пунктов меню инклудом вставляю нужные мне файлы.
    2. Через условие, что если GET пустой, то инклужу файл news.php
    3. А в файле news.php пытаюсь сделать постраничную навигацию новостей, но ничего не выходит. Например при нажатии на 2 страничку, он мне грузит файл 2.php

    Я так понимаю, что в скрипте навигации, нужно как-то по хитрому прописать ссылки на странички, но вот как не соображу =/

    Вот структура файла index.php:
    PHP:
    1.  
    2. <?php
    3. include('php/variables.php');
    4. include('php/base_menu.php'); //Файл меню
    5. if($site_page=='SNTO'){header('Location: SNTO/');
    6.     exit;}
    7. elseif($site_page=='students'){header('Location: students/');
    8.     exit;}
    9. elseif($site_page=='main_directions'){header('Location: Sciense/');
    10.     exit;}
    11. elseif($site_page=='library'){header('Location: library/');
    12.     exit;}
    13. elseif($site_page=='tool'){header('Location: gallery/tool.php');
    14.     exit;}
    15. elseif($site_page=='other'){header('Location: gallery/other.php');
    16.     exit;}      
    17. if($site_page=='') {
    18.     $site_page='news'; // определим если $_GET[page] пустая то выведем news
    19.     //Вывод навигации и строки в <title>
    20.     $title='Кафедра МТ2'; //Строка для <title>
    21.     $nav='Вы находитесь на официальном сайте кафедры "Инструментальная техника и технологии"';
    22.     }
    23.     else if($site_page=='search'){
    24.         $title='Кафедра МТ2'; //Строка для <title>
    25.         $nav='Вы находитесь на официальном сайте кафедры "Инструментальная техника и технологии"';
    26.     }
    27.     else{
    28.         foreach($pages as $main => $submenu){
    29.             foreach($submenu as $key => $value){
    30.                 if($site_page==$key){
    31.                     $nav='<a href="./index.php" target="_self">Главная</a> / '.$main.' / '.$value;
    32.                     $title='Кафедра МТ2 - '.$value;
    33.                                     }
    34.                                                }
    35.                                              }
    36.         }
    37.     //Конец
    38. include('header.inc');
    39. include('nav.php');
    40. include($site_page.'.php');
    41.  
    42. include('menu.php');
    43. include('footer.inc');
    44. ?>
    45.  
    Файл news.php

    PHP:
    1.  
    2. <!-- News -->
    3. <?php
    4. include('php/config.php');
    5. //Постраничный вывод
    6. // Переменная хранит число сообщений выводимых на станице
    7. $num = 1;
    8. // Извлекаем из URL текущую страницу
    9. $page = $_GET['page'];
    10. // Определяем общее число сообщений в базе данных
    11. $result = mysql_query("SELECT COUNT(*) FROM news");
    12. $posts = mysql_result($result,0);
    13. // Находим общее число страниц
    14. $total = intval(($posts - 1) / $num) + 1;
    15. // Определяем начало сообщений для текущей страницы
    16. $page = intval($page);
    17. // Если значение $page меньше единицы или отрицательно
    18. // переходим на первую страницу
    19. // А если слишком большое, то переходим на последнюю
    20. if(empty($page) or $page < 0) $page = 1;
    21.   if($page > $total) $page = $total;
    22. // Вычисляем начиная к какого номера
    23. // следует выводить сообщения
    24. $start = $page * $num - $num;
    25. // Выбираем $num сообщений начиная с номера $start
    26. $result = mysql_query("SELECT head, main_text, date FROM news ORDER BY news_id DESC LIMIT $start, $num");
    27. ?>
    28.  
    29. <div id="news">
    30. <p align="right"><a href="old_news.html" style="text-decoration:underline; color:#00F" target="_new">Архив новостей</a></p>
    31.  
    32. <?php
    33.  
    34. // В цикле переносим результаты запроса в массив $postrow
    35. while(list($head, $main_text, $date) = mysql_fetch_row($result))
    36. {
    37.     $news = "<div>\n
    38.             <h4>".$head."</h4>\n
    39.             ".$main_text."\n
    40.             <p class='date'>Дата публикации: ".$date."</p>\n
    41.             </div>";
    42.     echo ($news);
    43. }
    44. // Конец вывода
    45. ?>
    46. <div id="paging">
    47. <div id="pages" align="center">
    48. <?php
    49. // Проверяем нужны ли стрелки назад  
    50. if ($page != 1) $pervpage = '<a href= index.php?page=1>Первая</a>  
    51.                               <a href= index.php?page='. ($page - 1) .'><</a> ';  
    52. // Проверяем нужны ли стрелки вперед  
    53. if ($page != $total) $nextpage = ' <a href= index.php?page='. ($page + 1) .'>></a>  
    54.                                   <a href= index.php?page=' .$total. '>Последняя</a>';  
    55.  
    56. // Находим две ближайшие станицы с обоих краев, если они есть  
    57. if($page - 2 > 0) $page2left = ' <a href= index.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> ';  
    58. if($page - 1 > 0) $page1left = '<a href= index.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> ';  
    59. if($page + 2 <= $total) $page2right = ' <a href= index.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
    60. if($page + 1 <= $total) $page1right = ' <a href= index.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';
    61.  
    62. // Вывод меню  
    63. echo $pervpage.$page2left.$page1left.'<a href= index.php?page='.$page.' class="current">'.$page.'</a>'.$page1right.$page2right.$nextpage;  
    64. ?>  
    65. </div>
    66. </div>        
    67. </div><!--End NEWS -->
    68.