Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekształcenia switcha na ifa
TetTheGod
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 23.12.2016

Ostrzeżenie: (0%)
-----


Witam, mam taki problem że chcę przekształcić switcha z kategoriami na ifa, tak abym mógł dodawac nowe kategorie z poziomu UI, bez grzebania w kodzie.
mam taki kod switcha:
  1.  
  2. switch($_POST['category'])
  3. {
  4. case'coins':
  5. $_SESSION['category'] = $_POST['category'];
  6. break;
  7. case'testy':
  8. $_SESSION['category'] = $_POST['category'];
  9. break;
  10. case'wszystko':
  11. $_SESSION['category'] = null;
  12. break;
  13. default:
  14. break;
  15. }



i zrobiłem zamiast tego takiego ifa, ale nie działa:
  1. if(isset($_POST['category']));
  2. {
  3. $_SESSION['category'] = $_POST['category'];
  4. }
  5. if($_SESSION['category'] == "wszystko")
  6. {
  7. $_SESSION['category'] = null;
  8. }


a cały kod tej funkcji wygląda tak:
  1. function search_product()
  2. {
  3. $limit = 8;
  4. $page = $_GET['p'];
  5. if($page==0 || $page==1)
  6. {
  7. $strona= 0;
  8. }else{
  9. $strona = ($page*$limit)-$limit;
  10. }
  11.  
  12. switch($_POST['category'])
  13. {
  14. case'coins':
  15. $_SESSION['category'] = $_POST['category'];
  16. break;
  17. case'testy':
  18. $_SESSION['category'] = $_POST['category'];
  19. break;
  20. case'wszystko':
  21. $_SESSION['category'] = null;
  22. break;
  23. default:
  24. break;
  25. }
  26.  
  27.  
  28. if(isset($_POST['category']));
  29. {
  30. $_SESSION['category'] = $_POST['category'];
  31. }
  32. if($_SESSION['category'] == "wszystko")
  33. {
  34. $_SESSION['category'] = null;
  35. }
  36.  
  37.  
  38. switch($_POST['filter'])
  39. {
  40. case'najmniejsza':
  41. if(isset($_SESSION['category']))
  42. {
  43. $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING);
  44. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  45. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price ASC LIMIT $strona,8");
  46. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  47. $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR);
  48. $stmt->execute();
  49. }else{
  50. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  51. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price LIMIT $strona,8");
  52. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  53. $stmt->execute();
  54. }
  55. break;
  56. case'najwieksza':
  57. if(isset($_SESSION['category']))
  58. {
  59. $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING);
  60. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  61. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price DESC LIMIT $strona,8");
  62. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  63. $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR);
  64. $stmt->execute();
  65. }else{
  66. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  67. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price DESC LIMIT $strona,8");
  68. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  69. $stmt->execute();
  70. }
  71. break;
  72. default:
  73. if(isset($_SESSION['category']))
  74. {
  75. $phpro_category = filter_var($_SESSION['category'], FILTER_SANITIZE_STRING);
  76. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  77. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name AND category=:category ORDER BY price ASC LIMIT $strona,8");
  78. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  79. $stmt->bindParam(':category', $phpro_category, PDO::PARAM_STR);
  80. $stmt->execute();
  81. }else{
  82. $phpro_search_name = filter_var($_SESSION['product_search'], FILTER_SANITIZE_STRING);
  83. $stmt = getDBH()->prepare("SELECT * FROM products WHERE name LIKE :search_name ORDER BY price LIMIT $strona,8");
  84. $stmt->bindValue(':search_name','%'.$phpro_search_name.'%');
  85. $stmt->execute();
  86. }
  87. break;
  88.  
  89. }
  90.  
  91. echo '<div class="text5">Wyniki wyszukiwania dla: &nbsp;'.$_SESSION['product_search'].'</div>';
  92. while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) {
  93.  
  94. <div class="col-sm-6 col-md-3">
  95. <input type="hidden" name="id" value="'.$r['id'].'">
  96. <input type="hidden" name="price" value="'.$r['price'].'">
  97. <input type="hidden" name="count" value="'.$r['name'].'">
  98. <div class="thumbnail">
  99. <img src="../graph/'.$r['picture'].'" alt="" class="img-responsive">
  100. <div class="caption">
  101. <h3 class="text-left">'.$r['name'].'</h3>
  102. <p class="text-left">Cena: '.$r['price'].'zł</p>
  103. <div class="btn-toolbar text-center">
  104. <button type="submit" name="buy_product" class="btn btn-primary pull-right">Szczegoły</button>
  105. </div>
  106. </div>
  107. </div>
  108. </div>';
  109. }
  110. echo '</div>';
  111. }


Pomoże ktoś, jak zrobić tego ifa, żeby działał.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TetTheGod
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 23.12.2016

Ostrzeżenie: (0%)
-----


Niby jaki warunek ma nie być spełniony skoro jeśli nie ma kategorii to poprostu pokazuje wszystko. Więc nie rozumiem co tu ma spełnianie warunku do tego że nic się nie wyświetla
Go to the top of the page
+Quote Post

Posty w temacie
- TetTheGod   Przekształcenia switcha na ifa   23.12.2016, 11:20:32
- - nospor   Po co uzywasz sesji skoro twoje if/switche maja ty...   23.12.2016, 11:29:47
- - viking   [PHP] pobierz, plaintext if (isset($_POST...   23.12.2016, 11:32:57
- - TetTheGod   Nospor uzywam sesji bo po wybraniu nowej kategorii...   23.12.2016, 12:43:30
- - nospor   NO dobrze, napisalem ci co zrobic. Zrobiles to?   23.12.2016, 13:11:24
- - TetTheGod   Jeszcze z innego forum ktoś polecił mi jeden sposó...   23.12.2016, 13:27:00
- - viking   To wystarczy warunek drugi który podałem. Zmienias...   23.12.2016, 14:29:27
- - TetTheGod   Zrobiłem to tak i pojawia się wszystko [PHP] pobie...   23.12.2016, 15:15:57
- - nospor   Nie "*" a: null przeciez robisz ISSET ...   23.12.2016, 15:23:43
- - TetTheGod   No dobra to ogarnąłem, a co z filtrowaniem ceny ?   23.12.2016, 15:29:04
- - nospor   To nie jest FILTROWANIE a SORTOWANIE. Pokaz jak wy...   23.12.2016, 15:33:49
- - TetTheGod   <?PHP error_show() ?> <div class="co...   23.12.2016, 15:41:56
- - viking   Wygląda dobrze. Wyświetl sobie co masz w $sor...   23.12.2016, 15:51:11
- - TetTheGod   zrobiłem [PHP] pobierz, plaintext echo "<p...   23.12.2016, 16:05:54
- - viking   Może po prostu warunek nie jest spełniony. Wyświet...   23.12.2016, 16:30:41
- - TetTheGod   Niby jaki warunek ma nie być spełniony skoro jeśli...   23.12.2016, 16:36:25
- - viking   WHERE name LIKE :search_name - ten warunek   23.12.2016, 16:38:41
- - TetTheGod   Ale co zmiana sortowania ceny ma do tego bo nie za...   23.12.2016, 16:51:56
- - nospor   To jaki jest aktualnie problem? I pokaz w koncu ja...   24.12.2016, 16:26:53
- - TetTheGod   Problem rozwiązany, a kod finalnie wygląda tak: [P...   24.12.2016, 19:00:18


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 22:10