За последние 24 часа нас посетили 23745 программистов и 1557 роботов. Сейчас ищут 848 программистов ...

Простая листалка новостей [РЕШЕНО]

Тема в разделе "PHP для новичков", создана пользователем dcc0, 27 июн 2014.

  1. dcc0

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

    С нами с:
    27 июн 2014
    Сообщения:
    217
    Симпатии:
    4
    Товарищи, хотелось бы увидеть максимально простую листалку, без пагинации, т.е. не нужно выводить номера текущей и предыдущих страниц и т.д. Нумерация не нужна.
    Т.е. нажал "Еще", подргузились из БД еще данные, предыдущие исчезли, нажал опять "Еще", снова подргрузились.

    Ни у кого нет пылится такой скрипт?
     
  2. dapperkop

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

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Re: Простая листалка новостей

    Да у многих, наверное, есть... Только смысл его выкладывать? Во-первых, такие скрипты довольно индивидуальны для любого из проектов, во-вторых, его написать самому проще, чем сначала разбираться в чужой писанине, потом примерять к своему проекту, потом понять, что он тебе не подходит и написать свой с нуля)))
    Ничего сложного, небольшой скрипт с выборкой новостей + ajax
     
  3. dcc0

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

    С нами с:
    27 июн 2014
    Сообщения:
    217
    Симпатии:
    4
    Re: Простая листалка новостей

    А без ajax нельзя обойтись?
     
  4. dapperkop

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

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Re: Простая листалка новостей

    можно, конечно, только данные в таком случае не будут подгружаться, а произойдет перезагрузка страницы
     
  5. dcc0

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

    С нами с:
    27 июн 2014
    Сообщения:
    217
    Симпатии:
    4
    Re: Простая листалка новостей

    Это хорошо. То, что надо. Я сейчас использую чужой пагинатор, полнофункциональный, но не все понятно, как в нем работает, код довольно большой. Хочется минимализма. В общем, если кому-то нетрудно будет показать, буду весьма благодарен. В основном для учебных целей.

    Добавлено спустя 38 минут 51 секунду:
    Думал. И модифицировал все-таки тот скрипт. Получилось то, что нужно. Хочу все максимум упростить и минимизировать, чтобы можно было держать такой скрипт на веб-сервере для Android.
    Код (Text):
    1. <?php
    2. $perpage = 2;
    3.  if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
    4. $page = 1;
    5. } else {
    6. $page = (int) $_GET['page'];
    7. }
    8. $count = mysql_numrows(mysql_query('select * from  news')) or die(' Nothing happened');
    9. $pages_count = ceil($count / $perpage);
    10.  
    11. if ($page > $pages_count) $page = $pages_count;
    12. $start_pos = ($page - 1) * $perpage;
    13.  
    14. $result = mysql_query('select * from  news order by id desc limit '.$start_pos.',  '.$perpage ) or die('error!');
    15. echo '<center><table class="tbl" align=center><td class="tdl"><b></b>';
    16. while ($row = mysql_fetch_array($result)) {
    17. echo '<center><table class="tbl"><td class="tdl"><p ><b>'.$row['head'].'</b>';
    18. echo ''.$row['date'].'</p>';
    19. echo '<p align=left>';
    20. echo nl2br($row['text']);
    21. echo '</p></td></table><br></center>';
    22.  
    23. }
    24. echo '</p></td></table><br></center>';
    25. mysql_free_result($result);
    26. echo '<a href=t.php?page='.++$page.'>More</a>';
    27. ?>
     
  6. dcc0

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

    С нами с:
    27 июн 2014
    Сообщения:
    217
    Симпатии:
    4
    Инкремент/декремент творит чудеса:

    Код (Text):
    1. //Возврат на первую
    2. echo '<a href=index.php><<</a> ';
    3. //Вывести предыдущую
    4.  if($page>1)
    5. $page_minus=$page;
    6.    echo '<a href=index.php?page='.--$page_minus.'>'.$page_minus.'</a> ';
    7.  
    8. //Начиная со 2-ой вывести текущую страницу
    9.  if($page>1)
    10. echo $page;
    11. //Вывести следующую
    12.    echo '<a href=index.php?page='.++$page.'> '.$page.'</a> ';
    13. //Вывести последнюю
    14.    echo '<a href=index.php?page='.$pages_count.'>>></a> ';