Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Bitte um Hilfe bei Preis Abfrage/Funktion

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Bitte um Hilfe bei Preis Abfrage/Funktion

    Hallo,

    ich habe folgende Funktion bzw. Abfrage:

    PHP-Code:
    $string $_POST['price'];
    $var ereg_replace(",""."$string);

    function 
    zahl($var
        { 
            if (
    preg_match("=^[0-9]+$=i",$var)) { 
                return 
    TRUE
            } else { 
                return 
    FALSE
            } 
        }

    $price $var;
    if (
    zahl($price)) { 
    echo 
    "TRUE"
    }
    if (!
    zahl($price)) { 
    echo 
    "FALSE"

    Zunächst wird eine Variable übergeben.
    Dann wird in der variable ein Komma zum Punkt umgewandelt.
    Dann soll mit Hilfe der Funktion geschaut werden ob die Variable auch eine zahl ist und nicht aus alphanumerischem Code besteht.

    Mein Problem ist das diese Funktion mir immer "false" zurückgibt. Habe ich dort ein fehler gemacht?

    Und ausserdem soll die Funktion alles was bis auch zwei Stellen hinter dem Komma steht einfach abschneiden. Hat da jemand eine Idee für mich wie das gehen kann?

    lg
    ePole

  • #2
    kein Fehler, allerdings ist eine Zahl mit Komma halt keine Zahl sondern ein String, was erklärt warum immer False rauskommt. Ob POST/GET überhaupt zahlen übermittelt wenn es sich um eine handelt oder IMMER Strings weiß ich nicht.

    Edit: bin davon ausgegangen du nutzt is_Numeric

    preg_match("=^[0-9]+$=i",$var)
    guck dir den teil nochmal an und sag mir was falsch ist.

    Kommentar


    • #3
      wenn du überprüfen möchstest ob es eine Zahl ist, also in diesem Fall ein Preis empfiehlt sich eventuell die is_numeric() funktion
      PHP: is_numeric - Manual

      Kommentar


      • #4
        Zitat von tkausl Beitrag anzeigen
        Ob POST/GET überhaupt zahlen übermittelt wenn es sich um eine handelt oder
        Ich bin mir jetzt net sicher, aber PHp castet alle Variablen glaub ich immer so wie es sie gerade braucht. Im Normalfall aber auch als String...
        Mit is_numeric() biste bei Preisen immer auf der sicheren Seite

        Aber dran denken: Alle Angaben ohne Gewähr!

        Kommentar


        • #5
          ah, verstehe. das ist natürlich dann falsch...da muss ich mit is_numeric arbeiten. mein preg_match checkt nur ob es numerisch ist...! danke für die tips.

          und vieleicht hat ja noch jemand einen tipp wegen dem löschen aller Stellen hinter dem Komma bis auf die ersten beiden.

          Kommentar


          • #6
            Zitat von ePole Beitrag anzeigen
            ah, verstehe. das ist natürlich dann falsch...da muss ich mit is_numeric arbeiten. mein preg_match checkt nur ob es numerisch ist...! danke für die tips.

            und vieleicht hat ja noch jemand einen tipp wegen dem löschen aller Stellen hinter dem Komma bis auf die ersten beiden.
            >.< dazu sag ich nichts.
            "Runden" nennt man das, im englsichen ROUND
            einmal in google eingegeben siehst du dass es rundet, du willst abgeschnitten haben. bei der FUnktion ROUND gibt es die links zu FLOOR und CEIL, FLOOR brauchst du, die schneidet alle stellen nach dem komma ab. und frag jetzt nicht wie man die ersten beiden behält.

            Kommentar


            • #7
              float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
              PHP: round - Manual - hier werden sie geholfen

              PHP-Code:
              <?php
              echo round(2.235652);  #Ausgabe: 2.24

              Kommentar


              • #8
                "Runden" und "Abschneiden" sind aber zwei völlig unterschiedliche Paar Schuhe...

                Kommentar


                • #9
                  ihr seid super, vielen lieben dank. damit schaff ich`s meine funktion aufzupeppelln

                  Kommentar

                  Lädt...
                  X