Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] problem z wyszukiwaniem
guilty82
post 26.04.2007, 16:32:34
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

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 18.06.2025 - 17:35