Tom: Geldbeträge in DB speichern

Beitrag lesen

Hello,

in einer MySQL Tabelle ist eine Spalte "salary" als decimal(10,0) definiert.
Wenn man nun in einer PHP Webseite die ein Textfeld "Geldbetrag" enthält speichert und hier jemand z.b. 50.000 eingibt, dann wird nur der Wert 50 in der DB gespeichert.

Wie macht ihr so etwas?
Ist der Datentyp decimal ok oder sollte man als "varchar" speichern?

Sollte man eine Eingabe mit Punkt verbieten?

Man sollte am Server Input-Filter verwenden und dem User an Client genau aufzeigen, wie er die Daten eingeben soll.

Das ist dann ja auch eine Frage der LOCALE's, mit denen man auch das Money-Format festlegen kann. Aber bevor Du dich da durch alle Schnittstellen durchgehangelt hast, ist ein Inputfilter einfacher.

Die Daten kommen in PHP entweder als String oder als Array of Strings an. Die Umwandlung der Datenrepräsentation in Datentypen muss dann erst wieder vorgenommen werden.

Ein paar vorbereitete Filter hat PHP schon:
http://de1.php.net/manual/en/filter.filters.sanitize.php

oder eine Funktion:
http://de1.php.net/manual/en/function.number-format.php

Am Client kann man ggf. auch mittels JavaScript etwas nachhelfen.

oder mit CSS?
http://wiki.csswg.org/ideas/content-formatting
Das war zumindest mal ein Vorschlag.

Und HTML5 müsste auch noch Möglichkeiten kennen, die ich noch nicht ergründet habe.
http://html5doctor.com/html5-forms-input-types/#input-number

usw. usw.

Der User sollte die eingebebenen Daten vor dem Eintrag in die Datenbank nochmal zur Kontrolle vorgelegt bekommen. -> Forums-Suche: Affenformular

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com