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


--------------------
Everything should be made as simple as possible, but not simpler. - A.Eainstein
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 Aktualny czas: 20.08.2025 - 21:52