mam taki kod switcha:
switch($_POST['category']) { case'coins': $_SESSION['category'] = $_POST['category']; break; case'testy': $_SESSION['category'] = $_POST['category']; break; case'wszystko': $_SESSION['category'] = null; break; default: break; }
i zrobiłem zamiast tego takiego ifa, ale nie działa:
{ $_SESSION['category'] = $_POST['category']; } if($_SESSION['category'] == "wszystko") { $_SESSION['category'] = null; }
a cały kod tej funkcji wygląda tak:
function search_product() { $limit = 8; $page = $_GET['p']; if($page==0 || $page==1) { $strona= 0; }else{ $strona = ($page*$limit)-$limit; } switch($_POST['category']) { case'coins': $_SESSION['category'] = $_POST['category']; break; case'testy': $_SESSION['category'] = $_POST['category']; break; case'wszystko': $_SESSION['category'] = null; break; default: break; } { $_SESSION['category'] = $_POST['category']; } if($_SESSION['category'] == "wszystko") { $_SESSION['category'] = null; } switch($_POST['filter']) { case'najmniejsza': { $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING); $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price ASC LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR); $stmt->execute(); }else{ $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->execute(); } break; case'najwieksza': { $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING); $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price DESC LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR); $stmt->execute(); }else{ $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price DESC LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->execute(); } break; default: { $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING); $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price ASC LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR); $stmt->execute(); }else{ $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING); $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price LIMIT $strona,8"); $stmt->bindValue(':search_name','%'.$phpro_search_name.'%'); $stmt->execute(); } break; } while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) { echo' <div class="col-sm-6 col-md-3"> <input type="hidden" name="id" value="'.$r['id'].'"> <input type="hidden" name="price" value="'.$r['price'].'"> <input type="hidden" name="count" value="'.$r['name'].'"> <div class="thumbnail"> <img src="../graph/'.$r['picture'].'" alt="" class="img-responsive"> <div class="caption"> <h3 class="text-left">'.$r['name'].'</h3> <p class="text-left">Cena: '.$r['price'].'zł</p> <div class="btn-toolbar text-center"> <button type="submit" name="buy_product" class="btn btn-primary pull-right">Szczegoły</button> </div> </div> </div> </div>'; } }
Pomoże ktoś, jak zrobić tego ifa, żeby działał.