Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka ofert pracy - prośba o opinie
Panicz74
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Witam,

Jestem trochę początkujący w PHP, ale trochę czytam, nawet troszkę w Symfony zacząłem się bawić. Chciałbym pokazać wam mój skrypt, który służy do wyświetlania i filtracji ofert pracy z bazy danych. Do wyboru są pola: nazwa branży, rodzaj umowy, lokalizacja. Chciałbym poznać waszą opinię na jego temat, co jest źle || czego za dużo || czego za mało || jakie rozwiązania są lepsze od zastosowanego, itd. Wszystkie hejty mile widziane (IMG:style_emoticons/default/smile.gif)

Oto kod: http://pastebin.com/G9eu90d2
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Panicz74
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Właśnie próbuję odchudzić ten kod. Chciałem zrobić to na switchu ale mając 3x3 możliwości z GET chyba się to mija z celem. Takie coś nie działa:

  1. else if(!empty($_GET['nazwa']))
  2. {
  3. switch($_GET['nazwa'] && $_GET['umowa'] && $_GET['lokalizacja'])
  4. {
  5. //2
  6. case $_GET['nazwa'] !== "---" && $_GET['umowa'] == "---" && $_GET['lokalizacja'] == "---":
  7. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  8. LEFT JOIN users u ON u.id_usera = o.id_usera
  9. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  10. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  11. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  12. WHERE b.nazwa_branzy = :nazwa_branzy";
  13. break;
  14. //3
  15. case $_GET['nazwa'] !== "---" && $_GET['umowa'] !== "---" && $_GET['lokalizacja'] == "---":
  16. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  17. LEFT JOIN users u ON u.id_usera = o.id_usera
  18. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  19. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  20. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  21. WHERE b.nazwa_branzy = :nazwa_branzy AND i.rodzaj_umowy = :umowa";
  22. break;
  23. //4
  24. case $_GET['nazwa'] !== "---" && $_GET['umowa'] !== "---" && $_GET['lokalizacja'] !== "---":
  25. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  26. LEFT JOIN users u ON u.id_usera = o.id_usera
  27. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  28. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  29. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  30. WHERE b.nazwa_branzy = :nazwa_branzy AND i.rodzaj_umowy = :umowa AND l.lokalizacja = :lokalizacja";
  31. break;
  32. //5
  33. case $_GET['nazwa'] == "---" && $_GET['umowa'] !== "---" && $_GET['lokalizacja'] == "---":
  34. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  35. LEFT JOIN users u ON u.id_usera = o.id_usera
  36. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  37. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  38. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  39. WHERE i.rodzaj_umowy = :rodzaj_umowy";
  40. break;
  41. //6
  42. case $_GET['nazwa'] == "---" && $_GET['umowa'] == "---" && $_GET['lokalizacja'] !== "---":
  43. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  44. LEFT JOIN users u ON u.id_usera = o.id_usera
  45. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  46. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  47. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  48. WHERE l.lokalizacja = :lokalizacja";
  49. break;
  50. //7
  51. case $_GET['nazwa'] == "---" && $_GET['umowa'] !== "---" && $_GET['lokalizacja'] !== "---":
  52. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  53. LEFT JOIN users u ON u.id_usera = o.id_usera
  54. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  55. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  56. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  57. WHERE l.lokalizacja = :lokalizacja AND i.rodzaj_umowy = :rodzaj_umowy";
  58. break;
  59. //8
  60. case $_GET['nazwa'] !== "---" && $_GET['umowa'] == "---" && $_GET['lokalizacja'] !== "---":
  61. $sql = "SELECT b.nazwa_branzy, u.login, o.tresc, i.rodzaj_umowy, l.lokalizacja, o.date FROM ogloszenia AS o
  62. LEFT JOIN users u ON u.id_usera = o.id_usera
  63. LEFT JOIN branza b ON b.id_branzy = o.id_branzy
  64. LEFT JOIN umowa i ON i.id_umowy = o.id_umowy
  65. LEFT JOIN lokalizacja l ON l.id_lok = o.id_lok
  66. WHERE l.lokalizacja = :lokalizacja AND b.nazwa_branzy = :nazwa_branzy";
  67. break;
  68. }
  69.  
  70. try
  71. {
  72. $pdo = new PDO($pol, $user, $pass);
  73. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  74. if(isset($_GET['nazwa']))
  75. {
  76. $stmt = $pdo->prepare($sql);
  77. if($_GET['lokalizacja'] !== "---"){$stmt -> bindValue(':lokalizacja', $_GET['lokalizacja'], PDO::PARAM_STR);}
  78. else if($_GET['nazwa'] !== "---"){$stmt -> bindValue(':nazwa_branzy', $_GET['nazwa'], PDO::PARAM_STR);}
  79. elseif($_GET['umowa'] !== "---"){$stmt -> bindValue(':umowa', $_GET['umowa'], PDO::PARAM_STR);}
  80. $stmt -> execute();
  81. echo '<ul>';
  82. foreach($stmt as $row)
  83. {
  84. echo '<li>'.$row['nazwa_branzy'].': '.$row['rodzaj_umowy'].': '.$row['login'].': '.$row['tresc'].': '.$row['lokalizacja'].': '.$row['date'].'</li>';
  85. }
  86. $stmt->closeCursor();
  87. echo '</ul>';
  88. //print_r($_GET);
  89. }
  90. }
  91. catch(PDOException $e)
  92. {
  93. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  94. }
  95. }


A co myślicie o kursach Symfony2 z Eduweb? Ktoś miał może z nimi styczność?
Go to the top of the page
+Quote Post

Posty w temacie
- Panicz74   Wyszukiwarka ofert pracy - prośba o opinie   27.01.2016, 00:28:37
- - markuz   Na początek postaraj się oddzielic logikę od wyświ...   27.01.2016, 00:47:40
- - lukaskolista   Nie zaczynaj od żadnych code igniterów ani innych ...   27.01.2016, 09:59:13
- - Panicz74   Właśnie próbuję odchudzić ten kod. Chciałem zrobić...   27.01.2016, 15:36:20
- - Pyton_000   Trochę to bez sensu.. 1. Zmień name w input dla t...   27.01.2016, 16:05:30
- - lukaskolista   Tak, jak napisał Pyton, wartości --- zmień na pust...   27.01.2016, 17:07:20
- - nospor   http://nospor.pl/wyszukiwarka-zapytanie-za...d-war...   27.01.2016, 17:40:49
- - Panicz74   Kurczę, słabo na razie to pojmuję, ale widzę tutaj...   27.01.2016, 17:57:02
- - lukaskolista   Dynamiczne zapytania realizuje się za pomocą wzorc...   27.01.2016, 19:22:32
- - Panicz74   Zrobiłem coś takiego, na razie na jednej zmiennej,...   27.01.2016, 20:06:24
- - nospor   Normalnie, zamiast jednej tablicy tworzysz dwie n...   27.01.2016, 22:27:50
- - Panicz74   Cytat$wh[] = "b.nazwa_branzy = ?"; ...   28.01.2016, 02:28:09
- - lukaskolista   Przeanalizuj mój post z tego tematu: http://forum....   28.01.2016, 10:09:12
- - Panicz74   Ok. W miarę załapałem o co chodzi. Faktycznie troc...   28.01.2016, 21:09:11
- - lukaskolista   Ale po co bindujesz te parametry, skoro przekazuje...   28.01.2016, 21:37:49
- - Panicz74   Chciałbym to dobrze zrozumieć. Rozumiem, że teraz ...   28.01.2016, 22:11:13
- - lukaskolista   Bo są typu string. Jak będą intami, to będą bindow...   29.01.2016, 07:18:51


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

 



RSS Aktualny czas: 17.10.2025 - 22:14