grochu
21.01.2004, 13:32:08
Problem jest nastepujacy. Jest baza danych artykulow. kazdy artykul ma cene. Cena w bazie mysql zapisana jest w nastepujacym formacie:
tysiace,setki.cześci setne, czyli np 1,500.00 (tysiac piecset zlotych zero groszy). Wszystko jest ok, gdy dodaje ceny dwoch artykulow o cenie < 1000. Natomiast gdy wezme artykul o cenie przekraczajacej 1000 zl, to ten tysiac, traktowany jest jak zlotowka, czyli: 1,500.00 + 800.00 = 801.50. Jesli ktoś wie jak zmusic php do zrozumienia akiego zapisu liczb, to bylbym wdzieczny za odpowiedz.
Pozdrawiam, GrOcHu.
Witam.
A nie możesz kwoty trzymać w jednym polu tabeli?
Ustaw pole tabeli jako
DECIMAL(10,2) - 2 miejsca po przecinku i po problemie. Mozę dowolnie dodawać pola tej tabeli i zawsze jest dobrze
kszychu
21.01.2004, 13:55:51
Cytat
Witam.
A nie możesz kwoty trzymać w jednym polu tabeli?
Ustaw pole tabeli jako
DECIMAL(10,2) - 2 miejsca po przecinku i po problemie. Mozę dowolnie dodawać pola tej tabeli i zawsze jest dobrze

A gdzie on napisał, że trzyma w dwóch polach? 8O
grochu: A nie możesz tego przechowywać w bazie "normalnie" a przecinki dodawać sobie przy wyświetlaniu? Zaoszczędzi Ci to masę kłopotów.
spenalzo
21.01.2004, 14:01:46
Użyj pola FLOAT(10,2) - dane zapisujesz rozdzielone przez kropke.
Jest to najlepsze wyjście.
grochu
21.01.2004, 14:14:47
Dzieki wszyskim. Okazalo sie jak zwykle ze to moja wina a nie php. Moj blad polegal na tym, ze uzywalem przy zapytaniu SQL funkcji format(X,Z). W tabeli cena byla jak trzeba w jednym polu. Wywalilem format i dziala jak trzeba. Dzieki jeszcze traz za helpa.
Rzepa
23.01.2004, 10:12:35
Ja tylko dodam, że wartości pieniężnych nie powinno się NIGDY traktować jako FLOAT (patrz definicja typu).
pozdr.