За последние 24 часа нас посетили 17576 программистов и 1724 робота. Сейчас ищут 1574 программиста ...

вывод бд

Тема в разделе "PHP и базы данных", создана пользователем WhiteBerkut, 10 июн 2006.

  1. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Подскажите пожалуйста как сделать вывод данных из бд на несколько страниц, например по 10 строк на страницу.
     
  2. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    вам, видимо, имеет смысл ознакомиться с параметром sql запроса, под именем LIMIT.
     
  3. lemon

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

    С нами с:
    9 июн 2006
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Rivne
    SELECT *
    FROM `users`
    LIMIT 0 , 30 //0 - с какова 30 - по какой

    Вроди так!
     
  4. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    30 - это не по какую, а сколько начиная с 0!
    Большая разница!

    limit 10000,10001 выведет не 1 а 10001 записей начиная с 10000.
     
  5. lemon

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

    С нами с:
    9 июн 2006
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Rivne
    Да точно. Щось я лохонувся. :lol: :lol: :lol:
     
  6. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    а как генерировать ссылку на другую страницу и саму страницу?
     
  7. Vlad

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

    С нами с:
    22 мар 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Питер
  8. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    А за это большое спасибо. :)
     
  9. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    да сорри за еще один ламерский вопрос, что возвращает переменная
    PHP:
    1. $_SERVER['PHP_SELF']
     
  10. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Это-то я видел а по русски нигде нет? к гуглю не слать там был
     
  11. Mavir

    Mavir Guest

    Можно на яндекс послать :)

    Раньше не официальном сайте было по-русски написано, а сейчас нет. Может быть в офф-лайн версии осталось на русском. Вот из старых запасов

     
  12. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Придется напрягать... словарь :)
     
  13. Mavir

    Mavir Guest

    Я же тебе привел описание на русском. Это перевод с документации, кроме последней строки
     
  14. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    торможу после выходных :)
     
  15. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    и еще помогите плз объясните смысл данной строки

    PHP:
    1. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
     
  16. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Если установлена (существует) переменная $_GET['page'], то $page = $_GET['page'] - 1, иначе (если нет такой переменной) $page = 0;

    Если не делать проверку на существование переменной, то при вычитании 1 мы рискуем получить соответсвующий Notice.

    Полагаю что вычитание сделано для простоты вычисления и правильности отображения, то есть если page = 2, то мы можем сделать запрос с LIMIT ($limit*$page), $limit
    где при $limit = 30 получим LIMIT 30, 30
     
  17. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Решил сделать постраничный вывод данных из бд (ап), изменил код выскакивает ошибка на данном куске кода

    PHP:
    1. $per_page=10;
    2. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
    3. $start=abs($page*$per_page);
    4. $sql="SELECT * FROM `table` ORDER BY field LIMIT $i,$per_page";
    5. $result=mysql_query($sql);
    6. $row=mysql_fetch_row($result);
    ошибка:
    Вот и пытаюсь разобраться
     
  18. Mavir

    Mavir Guest

    А где определено $i?
     
  19. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    :oops:
    исправил, но все равно не пашет

    PHP:
    1. $per_page=10;
    2. if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
    3. $i=abs($page*$per_page);
    4. $sql="SELECT * FROM `table` ORDER BY field LIMIT $i,$per_page";
    5. $result=mysql_query($sql);
    6. $row=mysql_fetch_row($result);
    7.  
     
  20. Mavir

    Mavir Guest

    Что выдает print $sql; ?
     
  21. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    SELECT * FROM db_gb ORDER BY field LIMIT 0,10
     
  22. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Ну так поможете?
     
  23. Mavir

    Mavir Guest

    Код (Text):
    1. SELECT * FROM db_gb ORDER BY field LIMIT 0,10
    Запрос выглядит правильно. Тут два пути: или вставить этот запрос, например, в phpMyAdmin и посмотреть что он выводит, или посмотреть выдает ли ошибку mysql_query - $result=mysql_query($sql) or die(mysql_error());
    А лучше сделать и то и другое
     
  24. WhiteBerkut

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

    С нами с:
    21 фев 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Иваново
    Проверил все ок. Выводит 10 записей. А если переменная $row содержит значение Array это не нормально вроде? да? Из-за чего такое может быть?