Neuigkeiten:

still alive...

Hauptmenü

BRAUCHEN GANZ DRINGEND HILFE!!

Begonnen von nibbelkatscher, 20. Dezember 2006, 09:57:22

Vorheriges Thema - Nächstes Thema

nibbelkatscher

Hi@All,
wir haben ein Problem mit str_replace!
Wir möchten bei uns im System das Komma gegen Punkt ersetzen.
Wir haben bisher viele Methoden getestet - leider ging nur eine richtig - jedoch hat diese Methode auch die Komas in den eingegebenen Texten in Punkte verwandelt. Wir möchten jedoch nur die Zahlenwerte verändern!!
Hier mal der orginale Code wo die Änderungen rein sollen:

echo \"\\n\";
    echo \"   \\n\";
echo \"    \\n\";
    echo \"         \\n\";
echo \"                \\n\";
    echo \"      \\n\";
    echo \"           \\n\";
    echo \"        \\n\";
    echo \"     \\n\";
    echo \"     \\n\";
    echo \"              \\n\";            
    echo \"        \\n\";
    echo \"           \\n\";
    echo \"           \\n\";
    echo \"            \\n\";
    echo \"     \\n\";
    echo \"        \\n\";
    echo \"         \\n\";
    echo \"                \\n\";
    echo \"        \\n\";
    echo \"     \\n\";
    echo \"        \\n\";
    echo \"           \\n\";
    echo \"                 \\n\";
    echo \"     \\n\";
    echo \"  \\n\";
    echo \"        \\n\";
    echo \"  \\n\";
    echo \"  \\n\";
    echo \"           \\n\";
    echo \"  \\n\";
    echo \"         \\n\";
    echo \"   \\n\";
    echo \"      \\n\";
    echo \"      \\n\";
    echo \"               \\n\";
    echo \"            \\n\";
    echo \"         \\n\";
    echo \"   \\n\";
    echo \"      \\n\";
    echo \"      \\n\";
    echo \"               \\n\";
    echo \"            \\n\";
    echo \"      \\n\";
    echo \"   \\n\";
    echo \"   0) ? $_REQUEST[\'auto_relist_nb_tmp\'] : $_REQUEST[\'auto_relist_nb\']).\"\\\">\\n\";
    echo \"            \\n\";
    echo \"            \\n\";
    echo \"            \\n\";
    echo \"   \\n\";
    echo \"   \\n\";
    echo \"   \\n\";
    echo \"   \\n\";
    echo \"   \\n\";
    echo \"   \\n\";

 
 
Wir haben folgendes getestet:

$testvar = str_replace(\",\",\".\",$_REQUEST[\'startprice\']);
echo \"      \\n\";

 
Hat geklappt - nur bei \"postage_costs\" und \"insurance\" werden die Zahlen nach dem Komma auf Null (0) gesetzt - alle anderen Werte klappen!
Dann haben wir diesen Code getestet:

foreach ($_REQUEST as $key=>$value) {
 $_REQUEST[$key] = str_replace(\",\", \".\", $value);
}

 
 
Der klappte bei allen Zahlenwerten - jedoch hat der auch in den Texteingaben Kommas gegen Punkte getauscht  ;-(
UNSERE FRAGE:
Kann man diesen Code so ändern das er nur auf bestimte Werte greift (also nur Zahlenwerte)?:

foreach ($_REQUEST as $key=>$value) {
 $_REQUEST[$key] = str_replace(\",\", \".\", $value);
}

 
 
Oder kann uns jemand eine andere Lösung geben?
Mario
P.S.: In dem Code ganz oben müssen c.a. 5 oder 6 Zeilen geändert werden - der Rest ist Texteingabe!

mahe

einfach:

 
http://www.php.net/number_format\" rel=\"external nofollow\">http://www.php.net/number_format
Edit: Das Nächstemal bitte einen aussagekräftigeren Titel wählen /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


nibbelkatscher

Danke für die fixe Antwort!!
Hab da aber nochetwas vergessen - die Eingaben der Zahlen werden im Vorfeld von einer \"FormValidator.class\" Datei geprüft.
Hier mal der Code aus der Vormvalidator.class:

// check whether input is a number
function isNumber($field, $msg)
{
$value = $this->_getValue($field);
if(!is_numeric($value))
{
   $this->_errorList[] = array(\"field\" => $field, \"value\" => $value, \"msg\" => $msg);
   return false;
}
else
{
   return true;
}
}

 
 
Also wenn ich deinen Code nun nutzen möchte - wo soll er hin?
Wie kann ich das Problem mit der VormValidator.class lösen - diese Datei prüft bevor die Zahlen in die Datenbank übernommen werden - wenn da ein Komma gesetzt ist kommt eine Fehlermeldung,
(Das Startgebot muss eine Zahl sein...)

Hab da aber nochetwas vergessen - die Eingaben der Zahlen werden im Vorfeld von einer \"FormValidator.class\" Datei geprüft.[/quote]
Die eine weitere Schicht bloat um den eigentliche Aufruf von is_numeric() darstellt. Außer den zusätzlichen Angaben in der Error-List macht diese Methode nämlich nichts weiter.
Wie kann ich das Problem mit der VormValidator.class lösen - diese Datei prüft bevor die Zahlen in die Datenbank übernommen werden - wenn da ein Komma gesetzt ist kommt eine Fehlermeldung,[/quote]
Du musst der Methode entweder beibringen, Kommas und Punkte zu ignorieren, oder Du entfernst diese bevor Du prüfst. Üblicherweise speichert man solche Werte sowieso unformatiert als Ganzzahl in einer Datenbank.

all your base are belong to us / Discord