Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Operacja na zmiennej dla wielu wartości
Forum PHP.pl > Forum > Przedszkole
bladykiel
Dziś mam taką zagwostkę.. Otóż, nie pamiętam w jaki sposób zrobić pewien zabieg..
Dajmy na to, że mam w bazie danych pole "pole1" i zmienną na podstronie "wynik":
oraz zmienne:
a=1;
b=5;
c=8;
d=3;

w zależności od wartości "pole1" zmienna "wynik" przymuje różne wartości:


np.
dla pole1=1
"wynik"=1*a+1,05*b+2*c+1,02*d;

dla pole1=2
"wynik"=1,5*a+1,1*b+2,5*c+1,04*d;

itd..

Jak można to zapisać, pomijając ifa i klasy?
Dodam, że zmienna "pole1" przymuje wartości od 0 do 5, z czego przy kazdej wartości ma inne "współczynniki przy mnożeniu".
Turson
switch
bladykiel
Sęk w tym że nie chodzi mi o żadne funkcje typu if, for,switch.

Kiedyś, gdzies widziałem ale nie jestem w stanie powiedzieć gdzie i jak to wyglądało ;/
Turson
A te współczynniki gdzieś trzymasz, czy wpisujesz ręcznie? Jeżeli opcja 2, to nie ma innego wyjścia...
bladykiel
i tak i nie smile.gif
Mogę trzymać tylko nie wiem "jak".
W sensie, z tego co pamiętam, to składnia przypominała mi css i w niej odwoływała się do zminnej z bazy danych ... coś jak classa ale klasa to nie bylo ;p
memory
a co ci przeszkadza switch ? Przecież aplikacja nie spowolni z tego powodu w żaden sposób. Jakie są przesłanki by nie użyć switch ?
bladykiel
Cytat(memory @ 2.07.2014, 10:02:37 ) *
a co ci przeszkadza switch ? Przecież aplikacja nie spowolni z tego powodu w żaden sposób. Jakie są przesłanki by nie użyć switch ?

To nie będzie jedna zmienna. Zmiennych w bazie danych, będziesz miał np. 50, każda od 0 do 5, i każda z nich będzie miała różny "mnożnik" i oddziaływała na inną zmienną.
memory
Napisz sobie funkcje, klasę która obrobi ci te "zmienne".
mmmmmmm
wynik=a*(1+(pole1-1)*0.5)+b*(1+pole1*0.05)+c*(1.5+pole1*0.5)+d*(1+pole1*0.02)
Tak samo w SQL, jak i w PHP
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.