За последние 24 часа нас посетили 18817 программистов и 1636 роботов. Сейчас ищут 840 программистов ...

постраничный вывод

Тема в разделе "PHP для новичков", создана пользователем writer, 6 сен 2012.

  1. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Прошу прощения вновь за мой визит и глупый вопрос но реально бьюсь и не могу понять как сделать постраничный вывод. написано много всего , но я не могу понять как применить то это. пр чем везде написано либо без описаний и чисто код а где о с описанием но очень сумбурно.
    есть таблица news. из нее надо достать 3 столбца - id author textnews и вывести в постраничном виде. по 10 штук. могли бы вы хотя бы просто обьяснить(но понятным языком) принцип как все это сделать.
    Как я понял надо ситать общее кол-во новостей и делить на кол-во сколько надо на странице.
    Затем что надо вывести цилом это кол-во на страницу.
    Ту начинается у меня затуп. Как вытащить id из строки если его там нету...
    Допустим пропишу условие. не понимаю как проходит генерация цифр и как вывести допустим уже на 2 странице именно 10 в обратном порядке с 10 - 0.

    никакого кода пока нету. есть только с другого сайта слизаный который даже подставить не получилось.
    заранее спасибо!
     
  2. первый вопрос: Вы уверены что Вам нужен постраничный вывод? эта технология достаточно устаревшая.. сейчас модно использовать подгрузку новостей...
     
  3. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    ну если можно в двух словах плюсы и минусы. или сылки на мануалы какие нибудь))) просто тот способ точно рабочий и я на него ориентировался.
     
  4. постраничный вывод:
    объявляешь суперглобальную переменную n допустим сессию = 0
    из базы вытаскивай новости с параметром LIMIT n,10
    после увеличивай сессию на 10.
    кнопка дальше:
    echo '<button onclick=\'location.href("news.php?n='.$_SESSION['n'].'")\'дальше</button>';

    собственно при нажатии на кнопку будет перезагрузка. новости загрузятся следующие 10 штук....
     
  5. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    ок логика понятна) просто достаточно. вопрос другой теперь по части СЕО. у меня прикрепелен к новости тег. он у меня идет в мета кейвордс. будут ли читатся эти ключи роботом? допустим у меня на странице втматом выпадает последние 10 нвостей. остальные надо кликать. первые то робот прочитает а остальные нет? если так то смысла в таком нету( просто вся задумка то как раз в том чтобы все страницы читались и все ключи.
     
  6. вот этого я не знаю...
     
  7. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. $db_host="127.0.0.1";   // обычно не нужно изменять
    3. $db_user="root";    // имя пользователя БД
    4. $db_password="";    // пароль БД
    5. $db_name = "asy";  // имя БД
    6. $table_name = "news";   // имя таблицы статистики
    7.  
    8. // соединение с БД
    9. mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
    10. mysql_select_db($db_name) or die (mysql_error());
    11. // Данные, обычно из текстового файла или другого источника    
    12. $query = "SELECT * FROM `'.$table_name.'` WHERE `id` ORDER BY `id` DESC;";
    13.  
    14. $sql = mysql_query($query);
    15. // Записываем данные в массив    
    16. $dataArray = explode('|', $query);  
    17. // Получаем текущую страницу  
    18. $currentPage = trim($_REQUEST['page']);  
    19. // Настройки разбиения на страницы  
    20. $perPage = 3;  
    21. $numPages = ceil(count($dataArray) / $perPage);  
    22. if(!$currentPage || $currentPage > $numPages)  
    23.     $currentPage = 0;  
    24. $start = $currentPage * $perPage;  
    25. $end = ($currentPage * $perPage) + $perPage;  
    26. // Нужные страницы    
    27. foreach($dataArray AS $key => $val)  
    28. {  
    29.     if($key >= $start && $key < $end)  
    30.         $pagedData[] = $dataArray[$key];  
    31. }
    32. ?><?php
    33. foreach($pagedData AS $item)  
    34.     echo $item . "<br>";
    35. ?>
    36. <?php
    37. if($currentPage > 0 && $currentPage < $numPages)  
    38.     echo '<a href="?page=' . ($currentPage - 1) . '">« Предыдущая страница</a><br>';  
    39. if($numPages > $currentPage && ($currentPage + 1) < $numPages)  
    40.     echo '<a href="?page=' . ($currentPage + 1) . '" class="right">Следующая страница »</a><br>';
    41. ?>
    вот код который взял с другого сайта.
    напрочь отказывается выдавать список.
    выдает на всеобщий просмтор строку
    SELECT * FROM `'.news.'` WHERE `id` ORDER BY `id` DESC;
    понимаю что я опять чушь тут наделал но подскажите где поменять) реально устал)