Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] problem z wyszukiwaniem
guilty82
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


Witam,

Może zacznę od kodu.
Mój fomularz wygląda tak:

  1. <form action="wyszukaj.php" method="get" name="wyszukaj" id="wyszukaj">
  2. <pre><select name="p_uzyt" id="pow"><option selected value="*">powierzchnia</option>
  3. <option value="">------------------------</option>
  4. <option value="1">do 80m2</option>
  5. <option value="2">80 do 120m2</option>
  6. <option value="3">powyżej 120m2</option>
  7. </select>
  8. </pre>
  9. <pre><select name="tech"><option selected value="*">technologia</option>
  10. <option value="">------------------------</option>
  11. <option value="murowany">murowany</option>
  12. <option value="szkieletowy">szkieletowy</option>
  13. </select>
  14. </pre>
  15. <pre><select name="kat"><option selected value="*">kategoria</option>
  16. <option value="">------------------------</option>
  17. <option value="parter">parterowy</option>
  18. <option value="male_poddasze">małe poddasze</option>
  19. <option value="poddasze">poddasze</option>
  20. </select>
  21.  
  22. <input name="szukaj" type="submit" id="wyszukaj" value="szukaj">
  23. </pre>
  24. </form>


Zapytanie tak:
  1. <?php 
  2. $p_uzyt = $_GET['p_uzyt'];
  3. $tech = $_GET['tech'];
  4. $kat = $_GET['kat'];
  5.  
  6. $lista = @mysql_query("SELECT * FROM domki
  7. WHERE p_uzytkowa='$p_uzyt' OR technologia='$tech'
  8. OR kategoria='$kat' ORDER BY p_uzytkowa");
  9. ?>


Ok. Mój problem dotyczy zmiennej $p_uzyt. Nie wiem jak zdefiniować dla niej wartość żeby zapytanie filtrowało pozycje które spełniają warunek. W bazie mam pozycje p_uzytkowa od 0.00 do 200.00 i przykładowo wybieram opcję <option value="2">80 do 120m2</option>. probowałem z IF, ale nie działa:
  1. <?php
  2. $p_uzyt = $_GET['p_uzyt'];
  3. if ($p_uzyt == 1) {
  4. $p_uzyt = $p_u < 80.00; }
  5. if ($p_uzyt == 2) {
  6. $p_uzyt = ($p_u > 80.00) and ($p_u < 120.00); }
  7. if ($p_uzyt == 3) {
  8. $p_uzyt = $p_u > 120.00; }
  9. ?>


--edit--
ok $p_u nie ma przypisanej wartości. teraz zauważyłem ten błąd. Jednak nadal się zastanawiam jak przekształcić tego IFa, żeby w zapytaniu wybrał tylko te pozycje, których p_uzytkowa = od 80 do 120
--edit--

Drugi problem to, że jak nie zaznacze żadnej opcji z forma to chciałbym aby z bazy zostały wyciągnięte wszystkie wartości. Próbowałem wstawić '*' jako default value:
  1. <option selected value="*">powierzchnia</option>

Jednak mysql chyba ignoruje "gwiazdki" przesyłane przez GET.
Proszę o pomoc

Ten post edytował guilty82 26.04.2007, 16:38:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
=kokos=
post
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 6.08.2006

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


spróbuj tak

  1. <?php
  2. $tech = $_GET['tech'];
  3. $kat = $_GET['kat'];
  4.  
  5. if(empty($_GET['tech']) {
  6.  
  7. $lista = @mysql_query("SELECT * FROM domki
  8. WHERE kategoria='$kat'
  9. ORDER BY p_uzytkowa");
  10.  
  11. } elseif(empty($_GET['kat'])) {
  12.  
  13. $lista = @mysql_query("SELECT * FROM domki
  14. WHERE technologia='$tech'
  15. ORDER BY p_uzytkowa");
  16.  
  17. } elseif(!empty($_GET['kat']) && !empty($_GET['tech'])) {
  18.  
  19. $lista = @mysql_query("SELECT * FROM domki
  20. WHERE technologia='$tech' AND kategoria='$kat'
  21. ORDER BY p_uzytkowa");
  22. } else {
  23.  
  24. $lista = @mysql_query("SELECT * FROM domki ORDER BY p_uzytkowa");
  25.  
  26. }
  27. ?>


Ten post edytował =kokos= 27.04.2007, 18:58:22
Go to the top of the page
+Quote Post

Posty w temacie


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.12.2025 - 10:08