Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Php źle dodaje (nie rozumie formatu zapisu liczb).
Forum PHP.pl > Forum > PHP
grochu
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.
id4
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 smile.gif
kszychu
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 smile.gif

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
Użyj pola FLOAT(10,2) - dane zapisujesz rozdzielone przez kropke.
Jest to najlepsze wyjście.
grochu
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
Ja tylko dodam, że wartości pieniężnych nie powinno się NIGDY traktować jako FLOAT (patrz definicja typu).
pozdr.
spenalzo
Dlaczego?
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.