Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Geld-Angabe in MySQL speichern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Geld-Angabe in MySQL speichern

    HI,

    Habe eine kleine Frage und zwar möchte ich eine Geld-Angabe ohne Dezimalstelle und jeweils nach einem Tausender(also nach 3 Stellen) einen Punkt. Jedoch gibt es in MySQL sowas nicht also habe ich sowas nicht gefunden.

    Nun habe ich selbst sowas programmiert das nach jeder dritten Stelle einen Punkt macht.
    PHP-Code:
    $st 91;
    $number $st 100000;
    $mw number_format($number0',''.'); 
    Möchte nämlich wenn jemand 91 Stärke hat dann soll er einen Marktwert von 9.100.000 haben so soll es dann aussehen.

    Nun möchte ich das auf die Datenbank übertragen aber es funktioniert irgendwie nicht so richtig.

    Habe es nun auf ein String umgeändert da klappt es perfekt. Aber dann muss ich es immer als String umändern.

    Möchte es jedoch als Zahl und nicht als Text überbringen.

    Wenn ich Int nehme überträgt er nur 910.
    Bei Double genau das gleiche.


    Weil ich möchte sozusagen einen Marktwert eines Spielers speichern können und der soll sich auch öfters ändern.

    Genaudasselbe auch mit den normalen Spieler-Geld das soll sich auch verändern.

    Mfg

  • #2
    Dann speichere einfach nur die Stärke und bei der Ausgabe schickst du es dann durch deine kleine Funktion.

    Kommentar


    • #3
      Ja ist wohl die beste Lösung dafür.

      Aber wie mache ich es dann mit dem Geld??

      Kommentar


      • #4
        Wenn du das Query für die Datenbank baust, stelle sicher wenn du Integer-Werte einfügen willst die auch so definieren musst:
        Code:
        INSERT INTO theEvilDatabase 
           ( id, i_am_string, i_am_string_2, i_am_integer )
        VALUES
           ( NULL, 'hello', 'world', 1293938384 )
        falsch wäre:
        Code:
        INSERT INTO theEvilDatabase 
           ( id, i_am_string, i_am_string_2, i_am_integer )
        VALUES
           ( NULL, 'hello', 'world', '1293938384' )
        ' ' definiert stringzeichenketten in SQL

        Kommentar


        • #5
          PHP-Code:
          $geld $row['geld']; // jetzt 910
          $ausgabe $geld 10000
          echo 
          number_format($ausgabe,2,',','.'); // 9.100.000,00 

          Kommentar


          • #6
            @ Wolla

            Ich habe die Methode so geschrieben für den Marktwert nicht für das Geld. Die bleibt so wie ich sie habe Brauche keine Dezimalstellen.


            @ tr0y

            Natürlich habe ich die Stringkettenzeichen entfernt

            Ich möchte einfach das es 100.000 auf die Datenbank rüberbringt und das als Zahl.

            Hmm solange ich wohl nichts anderes finde werde ich wohl eine simple Methode nehmen und zwar genau die gleiche wie beim MW.


            Werde Geld als int-Variable speichern. Und für jeden Tausender die Zahl 1. Für jede Millionen eine 10er Stelle.

            Also wenn jemand 1.300.000 € hat wird 13 gespeichert in der Datenbank und mit der obengenannten Methode wird 1.300.000 ausgegeben

            Naja danke trotzdem für eure Hilfe

            Kommentar


            • #7
              Ich hab die Dezimalstellen nur als Beispiel aufgeführt. Schau dir number_format im Manual an.

              Kommentar


              • #8
                Für Geldbeträge gibt es ab 5.3 was neues:

                PHP-Code:
                <?php
                   header
                ('content-type: text/html; charset=utf-8');

                   
                define('CURRENCY_EUR''EUR'); // scheinbar gibt es so eine Konstante in PHP nicht
                   
                $locale 'de_DE';

                   
                $fmt = new NumberFormatter($localeNumberFormatter::CURRENCY);
                   echo 
                $fmt->formatCurrency(123456789CURRENCY_EUR);
                ?>
                Ach übrigens: weiß wer, wie man das € aus dem String wegbekommt, ohne das nachträglich rausschneiden zu müssen?

                Kommentar

                Lädt...
                X