Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Format ceny
Forum PHP.pl > Forum > Przedszkole
nexis
Witam,

mam formularz, w którym użytkownik podaje cenę produktu (brutto). Może podać cenę w postaciach:

  1. 1) 1234
  2. 2) 1234.5
  3. 3) 1234.56
  4. 4) 1234.00


Z tak podanej ceny obliczam cenę netto za pomocą takiego kodu:

  1. <?php
  2. $price = round($_POST['product_price'], 2);
  3. $netto = round($price-($price*1.07-$price), 2);
  4. ?>


W bazie danych są dwie kolumny typu DOUBLE. Jeżeli obie ceny są takiej postaci jak w punkcie 3 (np. 1234.56) to wszystko działa prawidłowo, jeżeli jest to jednak przypadek 1, 2 lub 4 to pojawia się problem.

1) 1234 - chciałbym aby wpis bazie miał postać 1234.00. Potrafię co prawda dodać dwa brakujące zera na końcu, ale chyba MySQL je znowu automatycznie obcina. Jaki typ kolumny zatem ustawić?

2) 1234.5 - prawie to samo co wyżej. Dostawiam jedno brakujące zero, ale MySQl i tak znowu redukuje wpis do postaci 1234.5

4) 1234.00 - znowu takie same objawy jak wyżej.

Proszę o pomoc.
siemakuba
szczerze to nie bardzo rozumiem ten problem...
przeciez z punktu widzenia jakiejkolwiek operacji matematycznej 1234.00 i 1234 to dwie identyczne liczby. tak?
jezeli chodzi ci o to ze sie nieladnie wyswietla na stronie... number_format" title="Zobacz w manualu php" target="_manual

pozdr.
Gość
daj pole jak float(6,2) np, wtedy będziesz miał ostatnie dwie liczby po przecinku w bazie i obojętie co dodasz będzie ci wstawiało te dwie liczby po przecniku, np dodajesz 123 z formularza, w bazie będzie 123,00 itd.
shingo
Cytat(nexis @ 24.05.2006, 16:17:53 ) *
Witam,

mam formularz, w którym użytkownik podaje cenę produktu (brutto). Może podać cenę w postaciach:

  1. 1) 1234
  2. 2) 1234.5
  3. 3) 1234.56
  4. 4) 1234.00


Z tak podanej ceny obliczam cenę netto za pomocą takiego kodu:

  1. <?php
  2. $price = round($_POST['product_price'], 2);
  3. $netto = round($price-($price*1.07-$price), 2);
  4. ?>


W bazie danych są dwie kolumny typu DOUBLE. Jeżeli obie ceny są takiej postaci jak w punkcie 3 (np. 1234.56) to wszystko działa prawidłowo, jeżeli jest to jednak przypadek 1, 2 lub 4 to pojawia się problem.

1) 1234 - chciałbym aby wpis bazie miał postać 1234.00. Potrafię co prawda dodać dwa brakujące zera na końcu, ale chyba MySQL je znowu automatycznie obcina. Jaki typ kolumny zatem ustawić?

2) 1234.5 - prawie to samo co wyżej. Dostawiam jedno brakujące zero, ale MySQl i tak znowu redukuje wpis do postaci 1234.5

4) 1234.00 - znowu takie same objawy jak wyżej.

Proszę o pomoc.



dodaj pola jako text i po sprawie gdyz obliczenia i tak wykonywane sa z poziomu php a nie sql
sql przechowuje tylko te wartosci wazne jest aby oddzielajacym znakiem byla kropka a nie przecinek
pozdrawiam
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.