[f9c482b] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | session_start();
|
---|
| 4 |
|
---|
| 5 | require "./connect.php";
|
---|
| 6 |
|
---|
| 7 |
|
---|
| 8 | $category = htmlspecialchars($_GET["category"] ?? '');
|
---|
| 9 | $price_sort = htmlspecialchars($_GET['price-sort'] ?? '');
|
---|
| 10 | $unique_brands = null;
|
---|
| 11 |
|
---|
| 12 | if(isset($_GET['submit']) && isset($_GET['product_id'])) {
|
---|
| 13 |
|
---|
| 14 | if(!isset($_SESSION['user_ID'])) {
|
---|
| 15 | header("Location: ./Log In.php");
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 | if($_GET['submit'] == 'add-to-wishlist') {
|
---|
| 19 |
|
---|
| 20 | $check = mysqli_query($conn, "SELECT * FROM wishlist WHERE user_id={$_SESSION['user_ID']} AND product_id = {$_GET['product_id']};");
|
---|
| 21 |
|
---|
| 22 | try {
|
---|
| 23 | if(mysqli_num_rows($check) <= 0) {
|
---|
| 24 | $res = mysqli_query($conn, "INSERT INTO wishlist(user_id, product_id) VALUES ({$_SESSION['user_ID']}, {$_GET['product_id']});");
|
---|
| 25 | }
|
---|
| 26 | } catch(Exception $e) {
|
---|
| 27 | echo $e;
|
---|
| 28 | }
|
---|
| 29 |
|
---|
| 30 | header("Location: ./Wishlist.php");
|
---|
| 31 | }
|
---|
| 32 | else if($_GET['submit'] == 'add-to-cart') {
|
---|
| 33 |
|
---|
| 34 | // proveri dali veke postoi
|
---|
| 35 | $check = mysqli_query($conn, "SELECT * FROM cart WHERE user_id={$_SESSION['user_ID']} AND product_id = {$_GET['product_id']};");
|
---|
| 36 | $quantity = 1;
|
---|
| 37 |
|
---|
| 38 | if(isset($_GET['quantity'])) {
|
---|
| 39 | $quantity = $_GET['quantity'];
|
---|
| 40 | }
|
---|
| 41 |
|
---|
| 42 | try {
|
---|
| 43 | if(mysqli_num_rows($check) >= 1) {
|
---|
| 44 | mysqli_query($conn, "UPDATE cart SET quantity = {$quantity} WHERE id = {$check->fetch_assoc()['id']};");
|
---|
| 45 | }
|
---|
| 46 | else {
|
---|
| 47 | $res = mysqli_query($conn, "INSERT INTO cart(user_id, product_id, quantity) VALUES ({$_SESSION['user_ID']}, {$_GET['product_id']}, {$quantity});");
|
---|
| 48 | }
|
---|
| 49 | } catch(Exception $e) {
|
---|
| 50 |
|
---|
| 51 | }
|
---|
| 52 |
|
---|
| 53 | header("Location: ./Cart.php");
|
---|
| 54 | }
|
---|
| 55 |
|
---|
| 56 | die();
|
---|
| 57 | }
|
---|
| 58 |
|
---|
| 59 | if(empty($category)) {
|
---|
| 60 | $category = 'All';
|
---|
| 61 | }
|
---|
| 62 |
|
---|
| 63 | if(empty($price_sort) || ($price_sort != 'low-to-high' && $price_sort != 'high-to-low' && $price_sort != 'none')) {
|
---|
| 64 | $price_sort = 'none';
|
---|
| 65 | }
|
---|
| 66 |
|
---|
| 67 | if($category != 'All' && $category != 'Monitor' && $category != 'CPU' && $category != 'GPU'
|
---|
| 68 | && $category != 'PSU' && $category != 'Motherboards' && $category != 'Cases'
|
---|
| 69 | && $category != 'Storage' && $category != 'Peripherals')
|
---|
| 70 | {
|
---|
| 71 | $category = 'All';
|
---|
| 72 | }
|
---|
| 73 |
|
---|
| 74 | if($category == 'All') {
|
---|
| 75 | $unique_brands = mysqli_query($conn, "SELECT DISTINCT brand FROM products;");
|
---|
| 76 | }
|
---|
| 77 | else {
|
---|
| 78 | $unique_brands = mysqli_query($conn, "SELECT DISTINCT brand FROM products WHERE category = \"{$category}\";");
|
---|
| 79 | }
|
---|
| 80 | ?>
|
---|
| 81 |
|
---|
| 82 |
|
---|
| 83 | <!DOCTYPE html>
|
---|
| 84 | <html lang="en">
|
---|
| 85 | <head>
|
---|
| 86 | <meta charset="UTF-8">
|
---|
| 87 | <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
---|
| 88 | <title>Products</title>
|
---|
| 89 | <link rel="stylesheet" href="../CSS/Header.css">
|
---|
| 90 | <link rel="stylesheet" href="../CSS/Products.css">
|
---|
| 91 | <link rel="stylesheet" href="https://unpkg.com/boxicons@latest/css/boxicons.min.css">
|
---|
| 92 | </head>
|
---|
| 93 | <body>
|
---|
| 94 |
|
---|
| 95 | <?php include './components/Header.html' ?>
|
---|
| 96 |
|
---|
| 97 | <section>
|
---|
| 98 | <div class="container">
|
---|
| 99 | <form class="sidebar" action="./Products.php" method="GET">
|
---|
| 100 | <h1>Products</h1>
|
---|
| 101 | <h5>Category</h5>
|
---|
| 102 | <select id="selectCategory" name="category">
|
---|
| 103 | <option value="All" <?php if($category == "All") echo "selected"; ?> >All</option>
|
---|
| 104 | <option value="Monitor" <?php if($category == "Monitor") echo "selected"; ?> >Monitors</option>
|
---|
| 105 | <option value="CPU" <?php if($category == "CPU") echo "selected"; ?> >Processors</option>
|
---|
| 106 | <option value="GPU" <?php if($category == "GPU") echo "selected"; ?> >Graphics Cards</option>
|
---|
| 107 | <option value="PSU" <?php if($category == "PSU") echo "selected"; ?> >Power Supplies</option>
|
---|
| 108 | <option value="Motherboards" <?php if($category == "Motherboards") echo "selected"; ?> >Motherboards</option>
|
---|
| 109 | <option value="Storage" <?php if($category == "Storage") echo "selected"; ?> >Storage</option>
|
---|
| 110 | <option value="Peripherals" <?php if($category == "Peripherals") echo "selected"; ?> >Peripherals</option>
|
---|
| 111 | <option value="Cases" <?php if($category == "Cases") echo "selected"; ?> >Cases</option>
|
---|
| 112 | </select>
|
---|
| 113 |
|
---|
| 114 | <h5>Sort By</h5>
|
---|
| 115 | <label for="sortPrice">Price</label>
|
---|
| 116 | <select id="sortPrice" name="price-sort">
|
---|
| 117 | <option value="none" <?php if($price_sort == 'none') echo "selected" ?> >None</option>
|
---|
| 118 | <option value="low-to-high" <?php if($price_sort == 'low-to-high') echo "selected" ?> >Low to High</option>
|
---|
| 119 | <option value="high-to-low" <?php if($price_sort == 'high-to-low') echo "selected" ?> >High to Low</option>
|
---|
| 120 | </select>
|
---|
| 121 |
|
---|
| 122 | <h5>Filter By Brand</h5>
|
---|
| 123 | <div class="checkbox-group">
|
---|
| 124 | <?php
|
---|
| 125 | $valid_brands = [];
|
---|
| 126 |
|
---|
| 127 | if(mysqli_num_rows($unique_brands) >= 1) {
|
---|
| 128 | foreach($unique_brands as $brand_list){
|
---|
| 129 | $checked_brand = [];
|
---|
| 130 |
|
---|
| 131 | if(empty($brand_list['brand'])) {
|
---|
| 132 | continue;
|
---|
| 133 | }
|
---|
| 134 |
|
---|
| 135 | if(isset($_GET['brands'])) {
|
---|
| 136 | $checked_brand = $_GET['brands'];
|
---|
| 137 |
|
---|
| 138 | if(in_array($brand_list['brand'], $checked_brand)) {
|
---|
| 139 | $valid_brands[] = $brand_list['brand'];
|
---|
| 140 | }
|
---|
| 141 | }
|
---|
| 142 | ?>
|
---|
| 143 | <div>
|
---|
| 144 | <input type="checkbox" name="brands[]" value="<?php echo $brand_list['brand'] ?>" <?php if(in_array($brand_list['brand'], $checked_brand)) echo "checked"; ?> >
|
---|
| 145 | <label><?php echo $brand_list['brand'] ?></label>
|
---|
| 146 | </div>
|
---|
| 147 |
|
---|
| 148 | <?php
|
---|
| 149 | }
|
---|
| 150 | }
|
---|
| 151 | ?>
|
---|
| 152 | </div>
|
---|
| 153 |
|
---|
| 154 | <input type="submit" value="Filter" id="filter-search-button">
|
---|
| 155 | </form>
|
---|
| 156 |
|
---|
| 157 | <div class="main-content">
|
---|
| 158 | <div class="products">
|
---|
| 159 | <?php
|
---|
| 160 | $all_products = null;
|
---|
| 161 |
|
---|
| 162 | if(isset($_GET['brands'])) {
|
---|
| 163 |
|
---|
| 164 | $brand_parameter = implode(',', $valid_brands);
|
---|
| 165 | $brand_parameter = explode(",", $brand_parameter);
|
---|
| 166 | $brand_parameter = "'".implode("','", $brand_parameter)."'";
|
---|
| 167 |
|
---|
| 168 | if($category != 'All') {
|
---|
| 169 | if($price_sort == 'low-to-high' && count($valid_brands) >= 1) {
|
---|
| 170 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" AND brand IN ({$brand_parameter})
|
---|
| 171 | ORDER BY (price - (price*discount/100.0)) ASC;
|
---|
| 172 | ");
|
---|
| 173 | }
|
---|
| 174 | else if($price_sort == 'low-to-high' && count($valid_brands) <= 0) {
|
---|
| 175 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" ORDER BY (price - (price*discount/100.0)) ASC;");
|
---|
| 176 | }
|
---|
| 177 | else if($price_sort == 'high-to-low' && count($valid_brands) >= 1) {
|
---|
| 178 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" AND brand IN ({$brand_parameter})
|
---|
| 179 | ORDER BY (price - (price*discount/100.0)) DESC;
|
---|
| 180 | ");
|
---|
| 181 | }
|
---|
| 182 | else if($price_sort == 'high-to-low' && count($valid_brands) <= 0) {
|
---|
| 183 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" ORDER BY (price - (price*discount/100.0)) DESC;");
|
---|
| 184 | }
|
---|
| 185 | else if(count($valid_brands) >= 1) {
|
---|
| 186 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" AND brand IN ({$brand_parameter})
|
---|
| 187 | ;");
|
---|
| 188 | }
|
---|
| 189 | else {
|
---|
| 190 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\";");
|
---|
| 191 | }
|
---|
| 192 | }
|
---|
| 193 | else {
|
---|
| 194 | if($price_sort == 'low-to-high') {
|
---|
| 195 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE brand IN ({$brand_parameter})
|
---|
| 196 | ORDER BY (price - (price*discount/100.0)) ASC;
|
---|
| 197 | ");
|
---|
| 198 | }
|
---|
| 199 | else if($price_sort == 'high-to-low') {
|
---|
| 200 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE brand IN ({$brand_parameter})
|
---|
| 201 | ORDER BY (price - (price*discount/100.0)) DESC;
|
---|
| 202 | ");
|
---|
| 203 | }
|
---|
| 204 | else {
|
---|
| 205 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE brand IN ({$brand_parameter})
|
---|
| 206 | ;");
|
---|
| 207 | }
|
---|
| 208 | }
|
---|
| 209 |
|
---|
| 210 | if(mysqli_num_rows($all_products) >= 1) {
|
---|
| 211 | foreach($all_products as $product) {
|
---|
| 212 | ?>
|
---|
| 213 | <div class="row">
|
---|
| 214 | <div class="image-container">
|
---|
| 215 | <img src="
|
---|
| 216 | <?php
|
---|
| 217 | $product_image = basename(strrchr($product['image1'], '/'));
|
---|
| 218 | $product_image = str_replace(array("'"), '', $product_image);
|
---|
| 219 | echo 'UPLOADED_IMAGES/'.$product_image;
|
---|
| 220 | ?>
|
---|
| 221 | ">
|
---|
| 222 | </div>
|
---|
| 223 | <div class="product-name">
|
---|
| 224 | <a href="./Product.php?product_id=<?php echo $product['product_id'] ?>">
|
---|
| 225 | <?php echo $product['name']; ?>
|
---|
| 226 | </a>
|
---|
| 227 | </div>
|
---|
| 228 | <div class="product-price">
|
---|
| 229 | $
|
---|
| 230 | <?php
|
---|
| 231 | $discount = $product['price'] * ($product['discount'] / 100);
|
---|
| 232 | echo $product['price'] - $discount;
|
---|
| 233 | ?>
|
---|
| 234 | </div>
|
---|
| 235 | <form class="icons-container" action="./Products.php" method="GET">
|
---|
| 236 | <input type="hidden" name="product_id" value="<?php echo $product['product_id'] ?>">
|
---|
| 237 | <button type="submit" name="submit" value="add-to-cart" style="border: none; font-size: 1.0em; background: transparent;" class='bx bx-cart'></button>
|
---|
| 238 | <button type="submit" name="submit" value="add-to-wishlist" style="border: none; font-size: 1.0em; background: transparent;" class='bx bx-heart'></button>
|
---|
| 239 | </form>
|
---|
| 240 | </div>
|
---|
| 241 | <?php
|
---|
| 242 | }
|
---|
| 243 | }
|
---|
| 244 | else {
|
---|
| 245 | echo '<p>No products</p>';
|
---|
| 246 | }
|
---|
| 247 | }
|
---|
| 248 | else {
|
---|
| 249 |
|
---|
| 250 | if($category != 'All') {
|
---|
| 251 | if($price_sort == 'low-to-high') {
|
---|
| 252 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" ORDER BY (price - (price*discount/100.0)) ASC;");
|
---|
| 253 | }
|
---|
| 254 | else if($price_sort == 'high-to-low') {
|
---|
| 255 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\" ORDER BY (price - (price*discount/100.0)) DESC;");
|
---|
| 256 | }
|
---|
| 257 | else {
|
---|
| 258 | $all_products = mysqli_query($conn, "SELECT * FROM products WHERE category = \"$category\";");
|
---|
| 259 | }
|
---|
| 260 | }
|
---|
| 261 | else {
|
---|
| 262 | if($price_sort == 'low-to-high') {
|
---|
| 263 | $all_products = mysqli_query($conn, "SELECT * FROM products ORDER BY (price - (price*discount/100.0)) ASC;");
|
---|
| 264 | }
|
---|
| 265 | else if($price_sort == 'high-to-low') {
|
---|
| 266 | $all_products = mysqli_query($conn, "SELECT * FROM products ORDER BY (price - (price*discount/100.0)) DESC;");
|
---|
| 267 | }
|
---|
| 268 | else {
|
---|
| 269 | $all_products = mysqli_query($conn, "SELECT * FROM products;");
|
---|
| 270 | }
|
---|
| 271 | }
|
---|
| 272 |
|
---|
| 273 | if(mysqli_num_rows($all_products) >= 1) {
|
---|
| 274 | foreach($all_products as $product) {
|
---|
| 275 | ?>
|
---|
| 276 | <div class="row">
|
---|
| 277 | <div class="image-container">
|
---|
| 278 | <img src="
|
---|
| 279 | <?php
|
---|
| 280 | $product_image = basename(strrchr($product['image1'], '/'));
|
---|
| 281 | $product_image = str_replace(array("'"), '', $product_image);
|
---|
| 282 | echo 'UPLOADED_IMAGES/'.$product_image;
|
---|
| 283 | ?>
|
---|
| 284 | ">
|
---|
| 285 | </div>
|
---|
| 286 | <div class="product-name">
|
---|
| 287 | <a href="./Product.php?product_id=<?php echo $product['product_id'] ?>">
|
---|
| 288 | <?php echo $product['name']; ?>
|
---|
| 289 | </a>
|
---|
| 290 | </div>
|
---|
| 291 | <div class="product-price">
|
---|
| 292 | $
|
---|
| 293 | <?php
|
---|
| 294 | $discount = $product['price'] * ($product['discount'] / 100);
|
---|
| 295 | echo $product['price'] - $discount;
|
---|
| 296 | ?>
|
---|
| 297 | </div>
|
---|
| 298 | <form class="icons-container" action="./Products.php" method="GET">
|
---|
| 299 | <input type="hidden" name="product_id" value="<?php echo $product['product_id'] ?>">
|
---|
| 300 | <button type="submit" name="submit" value="add-to-cart" style="border: none; font-size: 1.0em; background: transparent;" class='bx bx-cart'></button>
|
---|
| 301 | <button type="submit" name="submit" value="add-to-wishlist" style="border: none; font-size: 1.0em; background: transparent;" class='bx bx-heart'></button>
|
---|
| 302 | </form>
|
---|
| 303 | </div>
|
---|
| 304 | <?php
|
---|
| 305 | }
|
---|
| 306 | }
|
---|
| 307 | else {
|
---|
| 308 | echo '<p>No products</p>';
|
---|
| 309 | }
|
---|
| 310 | }
|
---|
| 311 | ?>
|
---|
| 312 | </div>
|
---|
| 313 | </section>
|
---|
| 314 | </body>
|
---|
| 315 | </html>
|
---|