За последние 24 часа нас посетили 22056 программистов и 1102 робота. Сейчас ищут 709 программистов ...

Как лучше сделать пагинацию на php

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

  1. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Сори ) но прект щас пишу на php 5.4.45 =)
    Так дело вот в чем работаю на Mysql есть простенькая структура таблицы для заданий(внизу скрин ).
    И есть work.php где должны отображатся все задания пользователей. Я зделал простойскриптик
    ---------Кусок кода-----------
    PHP:
    1. <table class="table-responsive-md table mt-2 p-2 table-bordered table-striped">
    2.                    <thead>
    3.                     <tr>
    4.       <th scope="col">ID</th>
    5.       <th scope="col">Логин хозяина</th>
    6.       <th scope="col">Имя задания</th>
    7.       <th scope="col">Описание</th>
    8.       <th scope="col">URL</th>
    9.       <th scope="col">Дата регистрации</th>
    10.       <th scope="col">Скачано</th>
    11.     </tr>
    12.   </thead>
    13.        <?php
    14. $link = mysql_connect('localhost', '......', '.........');
    15. if (!$link) {
    16.     die ('Err ' . mysql_error());
    17.     header("Location: http://...../baryga/profile.php?error=Ошибка соединения:". mysql_error());
    18.     exit;
    19. }
    20. if (!mysql_select_db('.....', $link)) {
    21.     header("Location: http://...../baryga/profile.php?error=Не удалось выбрать базу данных");
    22.     exit;
    23. }
    24. $sql4 = 'SELECT *  FROM `Work`';
    25. $result4 = mysql_query($sql4, $link);
    26. ?>
    27.   <tbody>
    28.       <?php
    29.       while ($row4 = mysql_fetch_assoc($result4)) {
    30.           echo '<tr>';
    31.     echo '<th scope="row">'.$row4['id_work'].'</th>';
    32.     echo '<td>'.$row4['creator_login'].'</td>';
    33.     echo '<td>'.$row4['name_work'].'</td>';
    34.     echo '<td>'.$row4['desc_work'].'</td>';
    35.     echo '<td>'.$row4['url'].'</td>';
    36.     echo '<td>'.$row4['date_reg'].'</td>';
    37.     echo '<td>'.$row4['downloaded'].'</td>';
    38.     echo '</tr>';
    39. }
    40.       ?>
    41.   </tbody>
    42. </table>
    Вот тоесть оно работает =) но теперь надо как-то (сам я в php не особо шарю) сделать пагинацию и вот как или на php или js не знаю,думаю лучше php но как функицей какой-то ?
     

    Вложения:

    • bd.PNG
      bd.PNG
      Размер файла:
      23,6 КБ
      Просмотров:
      4
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.750
    Симпатии:
    1.322
    Адрес:
    Лень
    Динозавров не поддерживаем
     
  3. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Был вынужден (
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.750
    Симпатии:
    1.322
    Адрес:
    Лень
    кто/что мешало писать на актуальной версии ? ошибки ? копикод не работал в 2к19 ?
    --- Добавлено ---
    сделай тест, где не по твоей вине вываливаются эти ошибки.
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Как сделать пагинацию?

    И расширение mysql устарело. Используй, например, mysqli.
    --- Добавлено ---
    P.S. Для таких ошибок лучше никуда не редиректить. Оставь пользователю возможность просто нажать «Обновить».
    --- Добавлено ---
    P.P.S. Писать на 5.4.45 можно, если не используешь новинки (не нуждаешься в них). У нас тоже пока в основном минималка – 5.4.
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    В ларке делается волшебством

    PHP:
    1. $posts = Post::paginate(10)->get();
     
  7. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    1 ) Не знал что на 5.4.45 есть mysqli, спасибо за инфу.
    2) Ок редиректы уберем
    3) Да я базовый функ. использую
    Спасибо за настановы )
     
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Evgeniy1 если не знал, то откуда узнал про mysql?
     
  9. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Пасиб, но просто на php пишу проект без фреймворков
    --- Добавлено ---
    Хе) Мануал и ( не реклама) sololearn.
    --- Добавлено ---
    Крч я тут подумал можно ет все в массив запихать. Можно так на php тип $all_works[0]['name'] ?)
    --- Добавлено ---
    Крч я тут подумал можно ет все в массив запихать. Можно так на php тип $all_works
    Крч я тут подумал можно ет все в массив запихать. Можно так на php тип $all_works[0]['name'] ?)
     
  10. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    пагинацию, можно сделать лимитом.
    Всё в массив пихать не надо, зачем тебе всё, если пользователю не надо всё?
    --- Добавлено ---
    @Evgeniy1

    http://code.mu/books/php/
     
  11. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Спасибо большое!
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Предварительно вытягивать в двумерный массив или использовать выборку непосредственно в шаблоне – это уже детали. Главное не выбирайте из БД все записи, а только нужные.

    P.S. Разные варианты я упоминал в этом комменте.
     
  13. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Спасибо! А ещё хотел бы узнать такая ли большая разница между mysql и mysqli ?
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Зачем? Первое – это реально древность, исключенная из современных версий. По многим причинам. mysqli же доступно не просто в 5.4, а во всей пятой линейке:
     
  15. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Ок, тоесть мне стоит бонально везде mysql заменить на mysqli ?
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Не банально, но там минимальные внешние изменения. Из основного: выбор БД обычно делается прямо в стандартной ф-ции подключения, порядок аргументов в query другой плюс можно использовать ОО-синтаксис. Ну и из «нового»: поддержка подготовленных запросов.
    --- Добавлено ---
    См. код по первой моей ссылке в теме.
     
  17. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Спасиб, буду переделывать
     
  18. Evgeniy1

    Evgeniy1 Новичок

    С нами с:
    5 июн 2018
    Сообщения:
    39
    Симпатии:
    0
    Ребят новая проблема если не сложно https://php.ru/forum/threads/mysqli-i-ajax-nekorrektno-vozvraschaetsja-otvet-ot-mysql.77522/