За последние 24 часа нас посетил 17441 программист и 1709 роботов. Сейчас ищут 1757 программистов ...

Постраничный вывод результатов (он же пейджер)

Тема в разделе "PHP для новичков", создана пользователем 440Hz, 16 авг 2007.

  1. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    замени на

    class IndigoPageBar {
     
  2. Arik

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

    С нами с:
    14 сен 2007
    Сообщения:
    66
    Симпатии:
    0
    чёта работает как то нетак.....не считает страницы и ссылку не правельно выводит
    Вот запрос:
    PHP:
    1.  
    2. <?
    3. $r2 = mysql_query("SELECT * FROM `news`");
    4. $num = mysql_num_rows($r2);
    5. $n =(int)$_GET['n'];
    6. $news_row=15;
    7.  
    8. $pager = new IndigoPageBar('/?n=',$num,$n,$news_row);
    9. $html  = $pager->GetHTML();
    10.  
    11. $start = ($n-1) * $news_row;
    12.  if($start < 0 )$start = 0;
    13.  
    14. $sel = mysql_query("SELECT * FROM `news`  ORDER BY `news_id` DESC LIMIT $start,$news_row");
    15.  
    16.  
    17. ..............................
    18.  
    19.  
    20. echo $html;
    21.  
    22.  
    23. ?>
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Arik

    покажи результат?
     
  4. Arik

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

    С нами с:
    14 сен 2007
    Сообщения:
    66
    Симпатии:
    0
    результат запроса....или html страницу?
     
  5. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    ха-ха, а вот и иллюстрация моих слов про новичков :)
     
  6. Arik

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

    С нами с:
    14 сен 2007
    Сообщения:
    66
    Симпатии:
    0
    Просто я не понял что он имеет ввиду под "покажи результат"
     
  7. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Можно поинтересоваться что делают следующии обороты:
    1 $n =(int)$_GET['n']; - что такое "(int)"?
    2. $pager = new IndigoPageBar('/?n=',$num,$n,$news_row); что есть "IndigoPageBar"?

    По теме могу порекомендовать:
    http://mysql.org/doc/refman/5.0/en/grou ... tion_count
     
  8. ambuddy

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

    С нами с:
    14 сен 2007
    Сообщения:
    6
    Симпатии:
    0
    А вот я не считаю себя таким уж и новичком, но с классами я как не подружился с самого начала(их описания не было в книжке Самоучитель по PHP), так до сих пор и не дружу. Обычно пользуюсь функциями, а классы так до сих пор и не понимаю зачем нужны. Может кто терпеливый объяснит?
    Кстати, конструкцией типа $pager->page_left; я только месяц назад понял как пользоваться и что она означает. И еще раз кстати, описания знака -> не нашел ни в одном мануале. А только в примерах, где исп. классы.
     
  9. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
  10. ambuddy

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

    С нами с:
    14 сен 2007
    Сообщения:
    6
    Симпатии:
    0
    1. Жесткое установление типа переменной на integer
    2. Название создаваемого класса, вроде $var = new Object();
     
  11. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Понятно. Спасибо. (прада не могу себе представить для чего это нужно)


    Это я знаю. Что за класс такой?
     
  12. ambuddy

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

    С нами с:
    14 сен 2007
    Сообщения:
    6
    Симпатии:
    0
    Да бывает это нужно, особенно когда не шаришь в троекратном равно "===" :)

    Дык про него же тут весь сыр-бор. См. первую страницу темы
     
  13. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    если у тебя строка '20', a тебе нужно ее переконвертировать в integer то делаеют это так: $var = (int)$_POST['data'];
     
  14. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Это я понял.
    Зачем может понадобиться указывать явный формат? Все функции PHP определяют формат по содержанию, но даже если понадобиться узнать подходит ли переменная к типу есть функции типа is_bool, is_integer и др. есть еще операторы сравнения типов "===", "!==" и т.п.

    Кстати самому стало интересно, вот навоял:
    PHP:
    1. <?php
    2. //$s=true;
    3. $s=1;
    4. //$s='1';
    5.  
    6.  
    7. echo "is_bool: ".is_bool($s)."<br>";
    8. echo "is_int: ".is_int($s)."<br>";
    9. echo "is_numeric: ".is_numeric($s)."<br>";
    10. echo "is_string: ".is_string($s)."<br>";
    11. echo "is_array: ".is_array($s)."<br>";
    12. echo "is_object: ".is_object($s)."<br>";
    13.  
    14. ?>
     
  15. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    иногда все-таки нужно приводить к integer. Ты это поймешь, когда столкнешься с такой задачей.
     
  16. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    S.t.A.M., потому что мир жесток. :) Если тебе нужен int из GET, то тип должен быть указать явно, да и весь GET отфильтрован насколько это необходимо. Если дело связано с формированием запроса, например, к базе, то 100% необходимо фильтровать, определять тип и закавычкивать всё. :)
     
  17. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
  18. virabhadra

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

    С нами с:
    11 дек 2006
    Сообщения:
    127
    Симпатии:
    0
    Адрес:
    Praha, Czech Republic
    Я просто подумал, что если необходимо продемонстрировать пример работы чего-то, то наверно нужно это представлять в как можно более простой форме.
     
  19. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    http://phpfaq.ru/paginator
     
  20. virabhadra

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

    С нами с:
    11 дек 2006
    Сообщения:
    127
    Симпатии:
    0
    Адрес:
    Praha, Czech Republic
    Luge, в общем-то так плюс-минус автобус у меня и сделано :)

    А по поводу темы...
    Это к тому, что бОльшая часть комментариев относится не к непосредственно теме изложения, а к её представлению.
    Да и представлять пример кода в виде фрагмента чего-то большого и неизвестного, по моему не очень корректно.
     
  21. md5

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

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0
  22. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    md5 баян это :) таких примеров пруд пруди. 440hz хотябы в класс всё это дело перенёс ;)
     
  23. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    md5
    народ, только знакомящийся с языком, закидает вопросами вроде «а что это такое»
    PHP:
    1. <?php $page = (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page']>0) ? $_GET['page'] : 1; ?>
     
  24. md5

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

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0
    Код (Text):
    1. хотябы в класс всё это дело перенёс Wink
    О_О

    Luge, спасибо, это да, есть такое, поправим
     
  25. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    Класс, не класс...
    Главное не оформить код красиво и удобно для себя.
    Главное новичкам основу алгоритма показать.