Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wydobyciem z tabeli najmniejszego elementu
Forum PHP.pl > Forum > Bazy danych > MySQL
karpini
witam,
Mam tabele:
Nazwa|Oprocentowanie|Okres|Cel|Waluta
Bank |4,8 |480 |M |PLN
Bank2 |5,5 |480 |M |PLN
Bank3 |3,2 |360 |D |CHF
itd.
i np. takie warunki:
cel=M, waluta=PLN, okres=460.
Chce wyliczyc rate kredytu pobierajac z tabeli najkorzystniejsze oprocentowanie spelniajace powyzsze warunki. Zapytalem tak:

$ins = @mysql_query("select min(oprocentowanie) from banki where waluta='$waluta' and okres>='$okres' and cel='$cel'");

mam wydobyc z tej tabeli najmniejsze oprocentowanie i przekazac ten parametr dalej do obliczenia raty, ale niestety nie wybiera mi najlepszego oprocentowania tylko pierwsze napotkane ktore spelnia podane warunki. (w php i mysql)
Co jest nie tak?
trafas
Nie wiem jak u Ciebie, ale u mnie przy tym zapytaniu wybiera najniższe oprocentowanie. Ja zrobiłem funckję która wygląda tak:

  1. <?php
  2. $cel="M";
  3. $waluta="PLN";
  4. $okres=460;
  5.  
  6. function szukaj($cel,$waluta,$okres)
  7. {
  8.  
  9. $zapytanie = mysql_query("select min(oprocentowanie) from tabela where waluta='$waluta' and okres>='$okres' and cel='$cel'") or die(mysql_error());
  10.  
  11. $wiersze = mysql_num_rows($zapytanie);
  12.  
  13. echo $wiersze." : <br/>";
  14.  
  15. for($i = 0; $i <= $wiersze; $i++)
  16. {
  17. $prz = mysql_fetch_array($zapytanie);
  18. echo $prz[0]."<br/>";
  19. }
  20. }
  21.  
  22. $pokaz = szukaj($cel,$waluta,$okres);
  23. ?>


Dane w tabeli wyglądają następująco:

Nazwa|Oprocentowanie|Okres|Cel|Waluta
Bank |4,8 |480 |M |PLN
Bank2 |5,5 |480 |M |PLN
Bank3 |3,2 |360 |D |CHF
Bank |4,7 |461 |M |PLN

Wynikiem takiego zapytania jest:
1 :
4.7

Czyli nie pierwszy napotkany spełniający warunki ale właśnie ten z najmniejszym oprocentowaniem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.