-
Notifications
You must be signed in to change notification settings - Fork 1
/
products.php
46 lines (44 loc) · 2.28 KB
/
products.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
// The amounts of products to show on each page
$num_products_on_each_page = 8;
// The current page, in the URL this will appear as index.php?page=products&p=1, index.php?page=products&p=2, etc...
$current_page = isset($_GET['p']) && is_numeric($_GET['p']) ? (int)$_GET['p'] : 1;
// Select products ordered by the date added
$stmt = $pdo->prepare('SELECT * FROM products ORDER BY date_added DESC LIMIT ?,?');
// bindValue will allow us to use integer in the SQL statement, we need to use for LIMIT
$stmt->bindValue(1, ($current_page - 1) * $num_products_on_each_page, PDO::PARAM_INT);
$stmt->bindValue(2, $num_products_on_each_page, PDO::PARAM_INT);
$stmt->execute();
// Fetch the products from the database and return the result as an Array
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Get the total number of products
$total_products = $pdo->query('SELECT * FROM products')->rowCount();
?>
<?=template_header('Products')?>
<div class="products content-wrapper">
<h1>Products</h1>
<p><?=$total_products?> Products</p>
<div class="products-wrapper">
<?php foreach ($products as $product): ?>
<a href="index.php?page=product&id=<?=htmlspecialchars($product['id'], ENT_QUOTES, 'UTF-8')?>" class="product">
<img src=<?=htmlspecialchars($product['img'], ENT_QUOTES, 'UTF-8')?> width="200" height="200" alt="<?=htmlspecialchars($product['name'], ENT_QUOTES, 'UTF-8')?>">
<span class="name"><?=htmlspecialchars($product['name'], ENT_QUOTES, 'UTF-8')?></span>
<span class="price">
$<?=htmlspecialchars($product['price'], ENT_QUOTES, 'UTF-8')?>
<?php if ($product['rrp'] > 0): ?>
<span class="rrp">$<?=htmlspecialchars($product['rrp'], ENT_QUOTES, 'UTF-8')?></span>
<?php endif; ?>
</span>
</a>
<?php endforeach; ?>
</div>
<div class="buttons">
<?php if ($current_page > 1): ?>
<a href="index.php?page=products&p=<?=$current_page-1?>">Prev</a>
<?php endif; ?>
<?php if ($total_products > ($current_page * $num_products_on_each_page) - $num_products_on_each_page + count($products)): ?>
<a href="index.php?page=products&p=<?=$current_page+1?>">Next</a>
<?php endif; ?>
</div>
</div>
<?=template_footer()?>