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

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: 24.08.2025 - 08:20