分页中的多个条件 SQL 感叹词 PHP

Multiple conditions within pagination with SQL interjection PHP

在 PHP 中,我正在尝试实现分页以显示来自基于 LIMIT 的 SQL 数据库的不同结果。我知道如何使用多个参数编写分页,但我不确定如何编写应用程序代码以识别 SQL 插入的第二个条件。

如果您查看包含 foreachhref 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;
            }
        }
        ?>

试试这个:

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