Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyszukiwanie 4 pól, wyszukiwanie po 4 polach z różną wart..
krzyszbi
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


witam
mam taki problemik
mam baze danych
jest w nie 13 pól
dajmy

cena
rok
moc
moc_s

i mam wyszukać z bazy rekordy spełniajace następujace wymagania
w formularzu jest 8 pól do których wpiuje
cona_od cena_do
rok_od rpk_do
moc_od moc_do
moc_s_od moc_s_do
i teraz dla mnie zaczynaja się schody (jak narazie nie widze ich końca)
próbowałem na dwa następujace znane mi sposoby

  1. SELECT *
  2. FROM dane_trak WHERE cena>$cena_od AND cena<$cena_do OR (cena>$cena_od OR cena<$cena_do)

ale ten sposób juz po dwóch poach mi wywala komunikat o błedzie

następny sposób jest moze troche prymitywny i długi w napisaniu ale za to
działa (ja napisałem obsługę 4 pól otrzymanych z formularza -- w sumie wyszło 16 kombinacji jakie mogąprzy takiej ilości wystąpic --- ja potrzebuje obsługi 8 pól z formularza czyli wyjdzie 64 możliwych kombinacji)
a to kod z php
  1. <?php
  2. include("files/konfig.inc");
  3. $trak_cena_od = $_POST['cena_od'];
  4. $trak_cena_do = $_POST['cena_do'];
  5. $trak_rok_prod_od = $_POST['rok_od'];
  6. $trak_rok_prod_do = $_POST['rok_do'];
  7. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)==0)
  8. $zapytanie = "select * from dane_trak where cena > $trak_cena_od";
  9.  
  10. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)==0)
  11. $zapytanie = "select * from dane_trak where cena < $trak_cena_do";
  12.  
  13. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)==0)
  14. $zapytanie = "select * from dane_trak where rok > $trak_rok_prod_od";
  15.  
  16. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)!=0)
  17. $zapytanie = "select * from dane_trak where rok < $trak_rok_prod_do"; //wybiera po jednym
  18.  
  19. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)==0)
  20. $zapytanie = "select * from dane_trak where cena between $trak_cena_od and $trak_cena_do";
  21.  
  22. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)!=0)
  23. $zapytanie = "select * from dane_trak where rok between $trak_rok_prod_od and $trak_rok_p
    rod_do"
    ; //wybiera po dwa jednakowe
  24.  
  25. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)!=0)
  26. $zapytanie = "select * from dane_trak where (cena > $trak_cena_od) and (rok < $trak_rok_prod_do)";
  27.  
  28. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)!=0)
  29. $zapytanie = "select * from dane_trak where (cena < $trak_cena_do) and (rok < $trak_rok_prod_do)";
  30.  
  31. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)==0)
  32. $zapytanie = "select * from dane_trak where (cena > $trak_cena_od) and (rok > $trak_rok_prod_od)";
  33.  
  34. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)==0)
  35. $zapytanie = "select * from dane_trak where (cena < $trak_cena_do) and (rok > $trak_rok_prod_od)";  //wybiera po dwa różne
  36.  
  37. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)==0)
  38. $zapytanie = "select * from dane_trak where (cena between $trak_cena_od and $trak_cena_do) && (rok > $trak_rok_prod_od)";
  39.  
  40. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)!=0)
  41. $zapytanie = "select * from dane_trak where (cena between $trak_cena_od and $trak_cena_do) && (rok < $trak_rok_prod_do)";
  42.  
  43. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)!=0)
  44. $zapytanie = "select * from dane_trak where (cena < $trak_cena_do) && (rok between $trak_rok_prod_od and $trak_rok_prod_do)";
  45.  
  46. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)!=0)
  47. $zapytanie = "select * from dane_trak where (cena > $trak_cena_od ) && (rok between $trak_rok_prod_od and $trak_rok_prod_do)";  //wybiera trzy z czterech
  48.  
  49.  
  50. if(strlen($trak_cena_od)!=&& strlen($trak_cena_do)!=&& strlen($trak_rok_prod_od)!=&& strlen($trak_rok_prod_do)!=0)
  51. $zapytanie = "select * from dane_trak where (cena between $trak_cena_od and $trak_cena_do) && (rok between $trak_rok_prod_od and $trak_rok_prod_do)";  //wybiera wszystkie 4
  52.  
  53.  
  54. if(strlen($trak_cena_od)==&& strlen($trak_cena_do)==&& strlen($trak_rok_prod_od)==&& strlen($trak_rok_prod_do)==0)
  55. $zapytanie = "select * from $tabela ";  //nie wybiera żadnego
  56.  $wynik=mysql_query($zapytanie);
  57.  while($wiersz=mysql_fetch_array($wynik))
  58.  echo"traktor".$wiersz['id']."  ".$wiersz['info']."<br>";
  59. ?>

może ktoś zna sposób na rozwiazanie lub pomoże mi rozwiązać ten problem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzyszbi
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


ok
załapałem
ale jak możesz to podpowiedz jak zrobić aby po wszystkich załózmy 4 polach wyszukiwałe bo jak wypełniew formularzu załóżmy 4 pola to
$where przyjmujke następującą postać
Cytat
where cena >= 1 and cena <= 1457 and cena >= 125 and cena <= 3650

gdzie dwie ostatnie "cana" powinno być "rok"
co trzeba poprawić

chyba się troszkę pośpieszyłem
znalazłem błąd
dzięki
jak nie będzie szukało to dam znać

Ten post edytował krzyszbi 5.10.2005, 13:11:34
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: 15.10.2025 - 11:01