-
Notifications
You must be signed in to change notification settings - Fork 34
/
cart.php
89 lines (76 loc) · 3.03 KB
/
cart.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
//načteme připojení k databázi
require 'db.php';
//přístup jen pro přihlášené uživatele
require 'user_required.php';
$ids = @$_SESSION['cart'];//načteme IDčka zboží, které máme v košíku (pročpak je tu asi ten zavináč :-))
if (is_array($ids) && count($ids)>0) {
//vygenerujeme si řetězec s otazníky o takové délce, kolik máme kusů zboží v košíku;pokud mam treba v ids 1,2,3, vrati mi ?,?,?
$question_marks = str_repeat('?,', count($ids) - 1).'?';
//připravíme si prepared statement pro načtení zboží podle jeho IDček
$stmt = $db->prepare("SELECT * FROM goods WHERE id IN ($question_marks) ORDER BY name");
//naplníme statement IDčky; funkce array_values vrací hodnoty z pole bez ohledu na jeho původní indexy (výsledkem je pole normálně indexované od 0, což je vyžadováno pro naplnění nepojmenovaných parametrů označených ?)
$stmt->execute(array_values($ids));
//všechny produkty načteme
$goods = $stmt->fetchAll();
}
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>My shopping cart - PHP Shopping App</title>
<link rel="stylesheet" type="text/css" href="./styles.css">
</head>
<body>
<?php include 'navbar.php' ?>
<h1>My shopping cart</h1>
Total goods selected: <strong><?php echo (!empty($goods)?count($goods):'0'); ?></strong>
<br/><br/>
<a href="index.php">Back to the goods</a>
<br/><br/>
<?php
if (!empty($goods)){
#region výpis zboží v košíku
//tentokrát vypisujeme tabulku rovnou z PHP, ale určitě by šlo stejně jako např. na index.php výpis PHP přerušit a vložit do něj HTML
//sami si vyberte, která varianta vám přijde přehlednější :)
$sum=0;
echo '<table>
<thead>
<tr>
<th></th>
<th>Name</th>
<th>Price</th>
<th>Description</th>
</tr>
</thead>
<tbody>';
#region výpis jednotlivých položek v košíku
foreach ($goods as $good){
echo ' <tr>
<td class="center">
<a href="remove.php?id='.$good['id'].'">Remove</a>
</td>
<td>'.htmlspecialchars($good['name']).'</td>
<td class="right">'.$good['price'].'</td>
<td>'.htmlspecialchars($good['description']).'</td>
</tr>';
$sum+=$good['price'];
}
#endregion výpis jednotlivých položek v košíku
echo ' </tbody>
<tfoot>
<tr>
<td>SUM</td>
<td></td>
<td class="right">'.$sum.'</td>
<td></td>
</tr>
</tfoot>
</table>';
#endregion výpis zboží v košíku
}else{
echo 'No goods yet.';
}
?>
</body>
</html>