Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zaawansowana wyszkukiwarka
Turson
post
Post #1





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Mam problem z napisaniem zaawansowanej wyszukiwarki. Formularz wygląda tak:

  1. <form action="index.php?page=szukaj" method="get">
  2. Miasto<select name="miasto">
  3. <option>Wszystkie</option>
  4. <option>Warszawa</option>
  5. <option>Łódź</option>
  6. <option>Gdańsk</option>
  7. <option>Wrocław</option>
  8. <option>Kraków</option>
  9. </select>
  10. Typ oferty<select name="typ_ofert">
  11. <option>Wszystkie</option>
  12. <option>Sprzedaż</option>
  13. <option>Kupno</option>
  14. <option>Wynajem</option>
  15. </select>
  16. Rynek<select name="rynek">
  17. <option>Wszystkie</option>
  18. <option>Wtórny</option>
  19. <option>Pierwotny</option>
  20. </select>
  21. <br />
  22. Typ nieruchomości<select name="typ_nieruchomosci">
  23. <option>Wszystkie</option>
  24. <option>Mieszkanie</option>
  25. <option>Dom</option>
  26. <option>Działka</option>
  27. </select>
  28. Rodzaj ogłoszenia<select name="rodzaj_ogloszenia">
  29. <option>Wszystkie</option>
  30. <option>Deweloperskie</option>
  31. <option>Agencyjne</option>
  32. <option>Bezpośrednie</option>
  33. </select>
  34. <br>
  35. Cena od
  36. <select name="cena_od">
  37. <option>Wszystkie</option>
  38. <option>1 000 zł</option>
  39. <option>5 000 zł</option>
  40. <option>10 000 zł</option>
  41. <option>25 000 zł</option>
  42. <option>50 000 zł</option>
  43. <option>100 000 zł</option>
  44. <option>250 000 zł</option>
  45. <option>500 000 zł</option>
  46. <option>1 000 000 zł</option>
  47. </select>
  48. do
  49. <select name="cena_do">
  50. <option>Wszystkie</option>
  51. <option>1 000 zł</option>
  52. <option>5 000 zł</option>
  53. <option>10 000 zł</option>
  54. <option>25 000 zł</option>
  55. <option>50 000 zł</option>
  56. <option>100 000 zł</option>
  57. <option>250 000 zł</option>
  58. <option>500 000 zł</option>
  59. <option>1 000 000 zł</option>
  60. </select><br />
  61. <input type="submit" class="szukaj" value="Szukaj"/>
  62. </form>


Mianowicie wszystko komplikuje się dla mnie, ponieważ użytkownik może wybrać pole "Wszystkie". I co wtedy zrobić?
Sprawa byłaby prostsza bez tego czyli jedno zapytanie gdzie coś=coś i szukaj.
Ale może wybrać np. miasto warszawa a dalej już "Wszystkie", "Wszystkie", "Wszystkie" etc. Jak to wyszukać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Możesz podać przykład kodu, bo jakoś nie za bardzo rozumiem?


Coś nie działa to wyszukiwanie :/

  1. <form action="test.php" method="get">
  2. Miasto<select name="miasto">
  3. <option value="wszystkie">Wszystkie</option>
  4. <option value="warszawa">Warszawa</option>
  5. <option value="łódź">Łódź</option>
  6. <option value="gdańsk">Gdańsk</option>
  7. <option value="wrocław">Wrocław</option>
  8. <option value="kraków">Kraków</option>
  9. </select>
  10. Typ oferty<select name="oferta">
  11. <option value="wszystkie">Wszystkie</option>
  12. <option value="sprzedaż">Sprzedaż</option>
  13. <option value="wynajem">Wynajem</option>
  14. </select>
  15. Rynek<select name="rynek">
  16. <option value="wszystkie">Wszystkie</option>
  17. <option value="wtórny">Wtórny</option>
  18. <option value="pierwotny">Pierwotny</option>
  19. </select>
  20. <br />
  21. Typ nieruchomości<select name="nieruchomosc">
  22. <option value="wszystkie">Wszystkie</option>
  23. <option value="mieszkanie">Mieszkanie</option>
  24. <option value="dom">Dom</option>
  25. <option value="działka">Działka</option>
  26. </select>
  27. Rodzaj ogłoszenia<select name="ogloszenie">
  28. <option value="wszystkie">Wszystkie</option>
  29. <option value="deweloperskie">Deweloperskie</option>
  30. <option value="agencyjny">Agencyjne</option>
  31. <option value="bezpośrednie">Bezpośrednie</option>
  32. </select>
  33. <br>
  34.  
  35. Cena:
  36. <input type="text" maxlength="10" name="cena_od" class="form_cena" value=1>
  37. -
  38. <input type="text" maxlength="10" name="cena_do" class="form_cena" value=1>
  39.  
  40. <br />
  41. <input type="submit" class="szukaj" value="Szukaj"/>


  1. if(isset($_GET["miasto"]) && isset($_GET["oferta"]) && isset($_GET["rynek"]) && isset($_GET["nieruchomosc"]) && isset($_GET["ogloszenie"]) && isset($_GET["cena_od"]) && isset($_GET["cena_do"]))
  2. {
  3. $condition = '';
  4. if ( (string) $_GET['miasto'] !== 'wszystkie')
  5. {
  6. $condition .= 'WHERE miasto = "' . $_GET['miasto'] . '"';
  7. }
  8. if ( (string) $_GET['oferta'] !== 'wszystkie')
  9. {
  10. $condition .= 'WHERE typ_oferty = "' . $_GET['oferta'] . '"';
  11. }
  12. if ( (string) $_GET['rynek'] !== 'wszystkie')
  13. {
  14. $condition .= 'WHERE rynek = "' . $_GET['rynek'] . '"';
  15. }
  16. if ( (string) $_GET['nieruchomosc'] !== 'wszystkie')
  17. {
  18. $condition .= 'WHERE typ_nieruchomosci = "' . $_GET['nieruchomosc'] . '"';
  19. }
  20. if ( (string) $_GET['ogloszenie'] !== 'wszystkie')
  21. {
  22. $condition .= 'WHERE rodzaj_ogloszenia = "' . $_GET['ogloszenie'] . '" ';
  23. }
  24.  
  25.  
  26. $zapytanie = mysql_query('SELECT * FROM ogloszenia ' . $condition . ' ') or die(mysql_error());
  27. if(mysql_num_rows($zapytanie))
  28. {
  29.  
  30. echo 'Wyniki wyszukiwania:<br>';
  31. while($w = mysql_fetch_assoc($zapytanie))
  32. {
  33. echo '<a href="index.php?page=pokaz&id='.$w["id"].'">'.$w["tytul"].'</a><br>';
  34. }
  35. }
  36. else
  37. {
  38. echo 'Brak wyników.<br><br>';
  39. $zapytanie2 = mysql_query('SELECT * FROM ogloszenia');
  40. if(mysql_num_rows($zapytanie2))
  41. {
  42.  
  43. while($w2 = mysql_fetch_assoc($zapytanie2))
  44. {
  45. echo '<a href="index.php?page=pokaz&id='.$w2["id"].'">'.$w2["tytul"].' '.$w2["metraz"].'m2, '.$w2["cena"].'zł</a><br>';
  46. }
  47. }
  48. }
  49.  
  50. }
  51. else
  52. {
  53. echo "nic";
  54. }


Raz działa raz nie, ale raczej nie.

Wezmę typ oferty=sprzedaż => Brak wyników (choć istnieje)
Wezmę typ oferty=wynajem => znajduje
Wezmę Kraków, wynajem => You have an error in your SQL syntax (choć istnieje)

Nie wiem jak zaradzić

Ten post edytował TursoN 9.08.2013, 19:01:10
Go to the top of the page
+Quote Post

Posty w temacie
- TursoN   [MySQL][PHP]Zaawansowana wyszkukiwarka   9.08.2013, 16:47:56
- - Tajgeer   Wystarczą odpowiednie warunki - nic skomplikowaneg...   9.08.2013, 16:53:13
- - Szymciosek   Dodam jeszcze, że w przypadku ceny możesz użyć BET...   9.08.2013, 16:55:26
- - TursoN   Czyli mniej więcej coś takiego (przykład) [PHP] po...   9.08.2013, 17:00:15
- - Tajgeer   Nie, nie możesz wstawić do zapytania warunku z pus...   9.08.2013, 17:03:07
- - TursoN   Edytytowałeś post jak akurat pisałem i nie zauważy...   9.08.2013, 17:08:22
- - Tajgeer   W skrócie? Tak. [PHP] pobierz, plaintext <?php...   9.08.2013, 17:11:05
- - TursoN   Rozumiem Kolejne pytanko na inny temat. Mam ...   9.08.2013, 17:15:09
- - Tajgeer   Spróbuj zmienić link w parametrze action Dodatko...   9.08.2013, 17:20:36
- - TursoN   Action jest dobre, bo chcę by szukało na podstroni...   9.08.2013, 17:26:41
- - Tajgeer   Tak jak wspomniałem, action możesz ustawić na zwyk...   9.08.2013, 17:27:52
- - TursoN   Możesz podać przykład kodu, bo jakoś nie za bardzo...   9.08.2013, 17:37:11
- - Szymciosek   Zauważ co dzieje się w warunkach. Raz masz dobre ...   9.08.2013, 21:26:52
- - TursoN   Napisałem obliczanie GETów różnych od "wszyst...   13.08.2013, 19:03:08
- - Szymciosek   Jeszcze źle. Nie będę podpowiadał za dużo, ale spr...   13.08.2013, 19:28:48
- - TursoN   Rozkminiam nad tym bardzo długo i to chyba przekra...   13.08.2013, 20:18:04
- - Szymciosek   Raz musisz dodać WHERE, a raz AND, musisz wymyślić...   13.08.2013, 21:02:34
- - TursoN   Napisałem krótki przykład wg. Twojego kodu i dziwn...   14.08.2013, 20:18:07
- - mlawnik   http://stackoverflow.com/questions/3150798...-sear...   14.08.2013, 20:20:09
- - TursoN   Co do problemu z miastem Łódź to zaradziłem po pro...   15.08.2013, 11:26:34
- - Crozin   1. Zacznij od podstaw, czyli normalnej komunikacji...   15.08.2013, 12:32:29
- - TursoN   Usunąłem wszystko w tabeli `ogloszenia` i ...   15.08.2013, 12:39:15
- - Crozin   Przecież napisałem jeszcze o kodowaniu połączenia ...   15.08.2013, 12:43:19
- - TursoN   [PHP] pobierz, plaintext function connection(...   15.08.2013, 12:49:39
- - mlawnik   Jeżeli wcześniej zapisałeś bez kodowania to nadal ...   15.08.2013, 13:20:42
- - TursoN   Dałem do pustej tabeli ALTER TABLE `ogloszenia...   15.08.2013, 13:24:48
- - Crozin   Zmieniłeś domyślne kodowanie dla tabeli, czyli dop...   15.08.2013, 13:26:28
- - TursoN   Okej, zmieniłem ręcznie dla jednej kolumny na utf8...   15.08.2013, 13:54:09
- - Crozin   http://php.net/manual/en/book.pdo.php - do dzieła ...   15.08.2013, 14:33:26
- - TursoN   [PHP] pobierz, plaintext <?phpif(isset...   19.08.2013, 20:36:02
- - Crozin   [PHP] pobierz, plaintext var_dump($sql, $param...   19.08.2013, 21:31:24
- - TursoN   Cytatstring(65) "SELECT * FROM ogloszenia WHE...   19.08.2013, 22:12:58


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: 16.10.2025 - 14:10