Array-Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array-Problem

    Hallo!

    Komme einfach nicht weiter.
    Meine Datenbank funktioniert, habe ein Problem mit einem Array.

    Wenn in ein Formular Zahlen z.B. 19,95 eingegeben werden,
    dann sollen sie in der Datenbank als 19.95 gespeichert werden.
    Das klappt auch, hier das Array.

    PHP-Code:
    $arraypreis1=explode(",",$preis1);
    $preis=$arraypreis1[0].".".$arraypreis1[1]; 
    Das Problem ist, wenn die Daten in ein Formular zum bearbeiten ausgelesen werden und dann per UPDATE-Befehl in die db gespeichert werden, dann bekomme ich hinter jede eingegeben (nicht geänderte) Zahl ein "."

    Die Daten werden dann so abgespeichert:
    PHP-Code:
    19.95
    Beim nächsten mal dann so

    PHP-Code:
    19.95.. 
    usw.

    Wie kann ich das verhindern???

  • #2
    http://de3.php.net/manual/en/function.number-format.php

    Kommentar


    • #3
      Ich fürchte, mit number_format kommt man hier nicht weiter. Es erkennt die Zahl mit , nämlich nicht als float, sondern schneidet beim , ab (weil , kein numerisches Zeichen ist).

      --> number_format("19,95",2,'.','') = 19.00 !!

      Der gewählte Ansatz war schon nicht so schlecht, bloß mußt Du bedenken, dass $arraypreis1[1] leer bleibt,
      wenn die Zahl kein "," enthält. Das tut sie schon dann nicht mehr, wenn Du den "," in einen "."
      umgewandelt hast. Und das ist genau das, was Du dann erhältst:

      19.95 steht in $arraypreis1[0], dann fügst Du den "." ein und dann kommt ein (leeres) $arraypreis1[1] hinzu (usw.)

      Wahrscheinlich einfachste (wenngleich vielleicht nicht eleganteste) Lösung:
      PHP-Code:
      $arraypreis1=explode(",",$preis1);
      $preis=implode($arraypreis1,"."); 
      Zuletzt geändert von merit; 19.03.2006, 23:13.

      Kommentar


      • #4
        ok, aber warum dann nicht einfach str_replace() benutzen?

        Kommentar


        • #5
          auch gut. Ich sagte ja, ist vielleicht nicht die eleganteste Lösung

          hab erst nach dem "explode" angefangen nachzudenken, wie bekomm ich es wieder zusammen. Dass man´s gar nicht auseinanderscheiden muß, ist natürlich richtig...

          Kommentar


          • #6
            Hallo und vielen Dank für die Antworten.
            Habe mich für
            PHP-Code:
            $preis str_replace(",""."$preis1); 
            entschieden und es klappt!

            Kommentar

            Lädt...
            X