gnuisnotunix
Mitglied
Hallo zusammen,
ich hänge gerade an folgendem Problem und hoffe dass ihr mir dabei helfen könnt:
Ich erhalte über ein Formularfeld eine Zahl. Dies kann sowohl eine Ganze Zahl sein, aber auch mit Nachkommastellen.
Mögliche Zahlen wären z.B.:
100000 // Einhunderttausend
100.000 // Einhunderttausend mit Interpunktion
100.000,00 // Einhunderttausend mit Interpunktion und 2 Nachkommastellen
Maximal dürfen es zwei Nachkommastellen sein. Diesen Wert will ich dann in eine Datenbank schreiben. Das Feld dort habe ich als double(100,2) deklariert.
Wie kann ich die übergebene Zahl nun a) auf Richtigkeit prüfen und b) wie schreib ich das dann korrekt in die Datenbank?
Meine Idee, die aber nur suboptimal funktioniert:
ich hänge gerade an folgendem Problem und hoffe dass ihr mir dabei helfen könnt:
Ich erhalte über ein Formularfeld eine Zahl. Dies kann sowohl eine Ganze Zahl sein, aber auch mit Nachkommastellen.
Mögliche Zahlen wären z.B.:
100000 // Einhunderttausend
100.000 // Einhunderttausend mit Interpunktion
100.000,00 // Einhunderttausend mit Interpunktion und 2 Nachkommastellen
Maximal dürfen es zwei Nachkommastellen sein. Diesen Wert will ich dann in eine Datenbank schreiben. Das Feld dort habe ich als double(100,2) deklariert.
Wie kann ich die übergebene Zahl nun a) auf Richtigkeit prüfen und b) wie schreib ich das dann korrekt in die Datenbank?
Meine Idee, die aber nur suboptimal funktioniert:
PHP:
if(!preg_match('~^[0-9]+(?:\.[0-9]{1,2})?$~', $zahl))
{
if(preg_match('~^[0-9]+(?:\,[0-9]{1,2})?$~', $zahl))
{
$new = split ('[,]', $zahl);
$zahl= $new[0].".".$new[1];
$insert = mysql_query("INSERT INTO datenbank (zahlenfeld) VALUES ('".$zahl."')");
}
else
{
echo "Falsche Zahl"; }
}