php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2009, 10:13  
Neuer Benutzer
 
Registriert seit: 21.10.2008
Beiträge: 3
der_Angler befindet sich auf einem aufstrebenden Ast
Standard Formular -> Zahlen -> Währung -> mySQL

Moinsen,
ich bin gerade dabei ne Art "intranet" für unsere kleine Firma zu programmieren. Dabei bin ich auf das folgende Problem mit der Zahlenformatierung gestossen. Und zwar gibt es ein Formular im Intranet-Auftritt bei dem der User Summen eingeben muss.
Das Eingabefeld dafür wird natürlich auch überprüft ob den wirklich nur Zahlen eingegeben wurden. Danach soll das ganze dann in einer mySQL-Datenbank gespeichert werden und zwar in einem Feld vom Typ "Double".
Dabei tauchen jetzt aber die Probleme auf. Und zwar soll der Benutzer folgende Eingaben machen können. Bsp:
"1.234,50" oder "+1.234,50" oder "1234,50" oder "1234.50"
All diese 4 Varianten sollen Gültig sein und jeweils die Zahl vom Wert "1234,50" ergeben. Die Überprüfung des Formularfelds habe ich mit folgender Funktion gelöst
Code:
function is_numeric_regex($str) {
    $str    = "{$str}";
    if (in_array($str[0], array('-', '+')))    $str = "{$str[0]}0" . substr($str, 1);
    else $str = "0{$str}";

    $eng    = preg_match ("/^[+,-]{0,1}([0-9]+)(,[0-9][0-9][0-9])*([.][0-9]){0,1}([0-9]*)$/" , $str) == 1;
    $world    = preg_match ("/^[+,-]{0,1}([0-9]+)(.[0-9][0-9][0-9])*([,][0-9]){0,1}([0-9]*)$/" , $str) == 1;

    return ($eng or $world);
}
Das klappt auch ganz gut, alle 4 Varianten von oben werden als gültig erkannt und die Weiterverarbeitung gestartet. Und hier harkt es jetzt!
Wenn ich die Eingabe aus dem Formular direkt nach mySQL schreibe, dann nimmt er nur "1234.50" als richtige Zahl an. Zum Beispiel würde die Eingabe von "1234,50" im mySQL-Feld zu dem Inhalt "1234" führen und nicht wie es richtig wäre zu "1234.50".
Das Problem scheint wohl zu sein das mySQL die Zahlen im amerikanischen Format erwartet und dort ist der "." das Dezimaltrennzeichen und nicht wie bei uns ",". Genauso scheint es auch mit dem dem Tausenderpunkt "." zu sein, den versteht mySQL auch nicht.
Okay, ich könnte jetzt sagen das die Benutzer dann in Zukunft den "." anstatt des "," zu nutzen haben, aber das wäre kontraproduktiv da bei uns die Zahlen über die NUM-Tasten eingegeben werden und dort ist nunmal das "," und nicht der der ".".

Deshalb meine Frage an euch:
Wie kann ich die Benutzereingabe so umwandeln das mySQL auch Werte wie "1.234,50" richtig abspeichert, bzw. das die Benutzereingaben ins richtige Format umgewandelt werden?
der_Angler ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.02.2009, 11:06  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wieso geben denn deine Mitarbeiter dann Tausenderpunkte an wenn sie das Numpad nutzen? Ich würde den Tausenderpunkt weglassen und nur Werte wie 1234,56 oder 1234.56 zulassen. Denn dann kannst du einfach alle Komma mit Punkten ersetzt und hast kein Problem. Ansonsten müsstest du eben das letzte Komma durch einen Punkt ersetzt und alle Punkte (außer dem letzten) entfernen.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Alt 11.02.2009, 12:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Du programmierst ein Intranet? LOL

Guckst Du hier (Achtung funktioniert nicht mit Tausenderpunkten hinter dem Komma, ja, das gibts!):
Float vereinheitlichen - PHP.de Wiki
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.02.2009, 14:51  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

OT:
Zitat:
Und hier harkt es jetzt!
Wenn es bei dir fertig ist, kann es im Herbst ja mal zu uns kommen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySql - Daten übers Formular einfügen? Toby PHP Tipps 2008 9 07.11.2007 09:51
(MySQL) Ergebnisse Zählen und sortiert ausgeben... Hawk Datenbanken 5 04.03.2007 17:08
Formular und Mysql = Leere felder in der DB kazuya PHP Tipps 2006 7 31.08.2006 23:46
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Formular - MySql - Formwerte in einzelne Varaben schreiben Helmuth74 PHP Tipps 2006 2 08.02.2006 11:36
MYSQL Daten im Formular ändern Datenbanken 1 01.03.2005 08:15
Daten via Formular in MySql eintragen Datenbanken 2 11.02.2005 14:03
Formular mit Mysql Anbindung 'progman' PHP Tipps 2005 6 27.01.2005 18:08
Datensätze mysql zählen und an Variable übergeben. PHP Tipps 2004 5 06.10.2004 15:55
MYSQL Tabelleninhalt in Formular übernehmen <SELECT> PHP Tipps 2004 9 27.09.2004 16:35
fragen zu einem Login und Zeit blabla über MySQL PHP Tipps 2004 10 12.09.2004 15:21
MySQL - Sortierung nach Zahlen GeorgM PHP Tipps 2004 2 29.08.2004 14:11
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55
PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; MySQL Datenbanken 5 01.08.2004 05:47
[Erledigt] MySQL Einträge zählen, aber wie? Datenbanken 6 20.07.2004 08:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql währung, mysql format währung, mysql währung formatieren, mysql zahlen formatieren, mysql tausender trennzeichen, mysql format euro, datenbank währung, währung datenbank, währung mysql, php formular zahlen, mysql währungsformat, währung str, mysql zahlen, mysql tausenderpunkt, php währung, php währung ausgeben, http://www.php.de/datenbanken/51686-formular-zahlen-waehrung-mysql.html, php währung formatieren, mysql format zahlen, php formular zahl

Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum