нумерация страниц с помощью начальной загрузки 4 карты - PullRequest
0 голосов
/ 15 октября 2019

Я создаю своего рода область блога на своем веб-сайте с использованием карт начальной загрузки 4, я заполняю свои карты данными из своей базы данных. И я хочу поместить карты в нумерацию страниц с помощью фильтра категорий enter image description here

мой выбор категории работает нормально, но я не уверен, как я должен решатьчасть для вычисления того, сколько строк и столбцов должно быть на веб-странице. Я знаю, что могу создать переменную, которая содержит максимальное количество строк и столбцов, и рассчитать смещение с помощью функции ceil. Затем поместите это в SQL-запрос с LIMIT, представляющим элементы смещения и максимума, но я не уверен, как это работает со строками. это код, который у меня есть на данный момент. `

<nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center">
            <li class="page-item disabled">
                <a class="page-link" href="#" tabindex="-1">Previous</a>
            </li><li class="page-item"><a class="page-link" href="blog.php?category=<?php if (isset($_GET["category"])){echo $_GET["category"];}?>&pagenumber=<?php // this is also where I'm stuck ?>">1</a>
</li>
<li class="page-item"><a class="page-link" href="blog.php?category=<?php if (isset($_GET["category"])){echo $_GET["category"];}?>&pagenumber=<?php // this is also where I'm stuck ?>">2</a></li>
<li class="page-item"><a class="page-link" href="blog.php?category=<?php if (isset($_GET["category"])){echo $_GET["category"];}?>&pagenumber=<?php // this is also where I'm stuck ?>">3</a></li>
            <li class="page-item">
                <a class="page-link" href="#">Next</a>
            </li>
        </ul>
    </nav>

`

категория работает так, например, если я выберу категорию 2, URL будет

http://localhost/HCDistributie/blog.php?category=2&pagenumber=

единственное, что нужно, это получить номер страницы.

это мой внутренний код, в котором я перебираю каждый элемент в базе данных и помещаю его в карту

    function getNews()
{
    // get current category
    if (isset($_GET["category"]) && is_numeric($_GET["category"])) {
        // bind get category to categoryId
        $categoryId = $_GET["category"];
        // if category is 1
        if ($categoryId == 1) {
            if (isset($_GET["pagenumber"]) && is_numeric($_GET["pagenumber"])) {
                $pageNumber = $_GET["pagenumber"];
                try {
                    $itemLimits = 9;
                    $rowLimit = 3;


                    $db = new Connection();

                    $database = $db->openConnection();

                    $stm = $database->query("SELECT * FROM blog where category = $categoryId");

                    $stm->execute();

                    $rowNews = $stm->fetchAll(PDO::FETCH_ASSOC);

                    foreach ($rowNews as $items) {
                        ?>
                        <div class="card-group">
                            <div id="classContainer" class="col-md-4">
                                <div class="card">
                                    <img src=" <?php $items['img'] ?>" class="card-img-top" alt="...">
                                    <div class="card-body">
                                        <h5 class="card-title"><?php echo $items["title"]; ?></h5>
                                        <p class="card-text"><?php echo $items["content"] ?></p>
                                        <p class="card-text"><small
                                                    class="text-muted"><?php $items["author"]; ?></small>
                                        </p>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <?php
                    }

                } catch
                (PDOException $e) {
                    echo sprintf("Something went wrong. $e->errorInfo");
                }
            }
        }
    }
}

У меня вроде есть идея, как мне решить проблемуЯ не уверен, как применить это к моему коду, учебники, которые я только для чтения, имеют дело с переменной для элементов max, в то время как у меня есть 2 столбца max и столбцы max. Я не уверен, как рассчитать их обоих по отдельности.

Это первый раз, когда я работал с любым видом нумерации страниц, поэтому я прошу прощения, если некоторые вещи кажутся странными или глупыми.

1 Ответ

0 голосов
/ 15 октября 2019

Это не странно и не глупо, первый контакт с нумерацией страниц - это всегда хлопот;)

С помощью начальной загрузки вы можете просто узнать о максимальных вхождениях записей вашей карты. Вы можете обернуть все, используя строки и столбцы , посмотрите этот пример:

<div class="container">
  <div class="row">
    <div class="col-4">
      1 of 5
    </div>
    <div class="col-4">
      2 of 5
    </div>
    <div class="col-4">
      3 of 5
    </div>
    <div class="col-4">
      4 of 5
    </div>
    <div class="col-4">
      5 of 5
    </div>
  </div>  
</div>

Fiddle

Спасибона .col-4 вы всегда получите три карты подряд. В вашем примере:

<div class="card-group">
  <div class="row">
  <?php foreach ($item as $items) { ?>
    <div class="col-4">
      <div class="card">
        // Your card content goes here, use $item
      </div>
    </div>
  <?php } ?>
  </div>
</div>

Что более важно, кажется, что вы пишете что-то на простом PHP. Если вы хотите стать публичным, вы должны рассмотреть платформу, которая уже имеет некоторые возможности проверки и вспомогательные функции - даже встроенную нумерацию страниц! Я бы выбрал Laravel для этого.

EDIT: исправлена ​​ошибка. Спасибо @hakiko

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...