Несколько условий в пределах нумерации страниц с помощью SQL-вставки PHP - PullRequest
0 голосов
/ 29 сентября 2019

В PHP я пытаюсь реализовать нумерацию страниц, которая отображает разные результаты из базы данных SQL на основе LIMIT. Я знаю, как написать разбиение на страницы с несколькими параметрами, но я не уверен, как кодировать приложение, чтобы распознать второе условие для вставки SQL.

Если вы посмотрите на код, где он содержит foreach иhref containing page_number and category_id Мне нужно получить нумерацию страниц внизу, чтобы соответствовать категории, выбранной в foreach для отображения правильных данных. Также я не мог понять, как реализовать страницы без жесткого кодирования в for loop

Это функция для страницы запроса SQL

function get_products_by_category($category_id, $pn) 
{
    global $db;

    $arithmetic = 8*($pn -1);
    $query = "SELECT * FROM products 
              WHERE products.categoryID = :category_id
              ORDER BY productID LIMIT $arithmetic, 8";
    $statement = $db->prepare($query);
    $statement->bindValue(":category_id", $category_id);
    $statement->execute();
    $products = $statement->fetchAll();
    $statement->closeCursor();
    return $products;
}

Вот где она вызывается

if ($action == 'list_products') 
{
    $category_id = filter_input(INPUT_GET, 'category_id', 
            FILTER_VALIDATE_INT);
    if ($category_id == NULL || $category_id == FALSE) 
    {
            $category_id = 1;

    }

    $category_name = get_category_name($category_id);
    $categories = get_categories();
    $products = get_products_by_category($category_id, $pn);
    $products_amount = get_products_total($category_id);
    $total = count($products_amount);
    include('product_list.php');       

}

Вот foreach и нумерация страниц

<?php 
    $pn;
    $current_category;
    $total_page = $total/8; 
    $remain = $total % 8;
    if($remain > 0)
    {
        $total_page = $total_page + 1;
    }
    ?>

    <aside>
        <!-- display a list of categories -->
        <h2>Categories</h2>
        <nav>
        <ul>    
        <?php foreach ($categories as $category) : ?>
            <li>

                <a href="?category_id=<?php echo $category['categoryID']; ?>">
                <?php echo $category['categoryName'];?>
                </a>
            </li>
        <?php endforeach; ?>

for($i = 1; $i <= $total_page; $i++)
        {
        ?>
            <a href="?page_number= <?php echo $i; ?> & ?category_id= <?php echo $i; ?>"><?php echo $i; ?> </a> &nbsp;
        <?php
            if($i == 1)
            {
                $pn = 1;  
            }
            else if($i == 2)
            {
                $pn = 2;
            }
            else if($i == 3)
            {
                $pn = 3;
            }
        }
        ?>

1 Ответ

0 голосов
/ 29 сентября 2019

Попробуйте это:

        <a href="?page_number=<?php echo $i; ?>&amp;category_id=<?php echo $category_id; ?>"><?php echo $i; ?> </a> &nbsp;
...