Variablen zusammensetzen und ausführen

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

  • Variablen zusammensetzen und ausführen

    irgendwie stelle ich mich extrem blöd an. (mag an der uhrzeit liegen)

    Folgendes Problem:

    Diese Variablen kommen aus der Datenbank:

    $summe="50";
    $plusminus="-";
    $count="5";

    jetzt möchte ich das das script

    $summe2="$summe$plusminus$count";

    berechnet und nicht nur anzeigt.

    Also $summe2 sollte dann 45 sein und nicht wie in diesem Fall 50-5

    Ist bestimmt nur ein Formatierungsfehler, aber irgendwie bin ich peinlicherweise z.Zt. zu blöd.

    Danke für eure Hilfe

  • #2
    -> www.php.net/eval

    Kommentar


    • #3
      Danke scheint ein guter ansatz zu sein, ich probiers.

      Kommentar


      • #4
        Hm irgendwie scheine ich einen denkfehler zu haben:

        $sumbasket="50";
        $plusminus="-";
        $count="5";

        //Berechnung bei Summe
        $sumbasket2="$sumbasket$plusminus$count";
        eval ("\$sumbasket2 = \$sumbasket2\;");
        echo $sumbasket2;

        Leider zeigt er wieder nur den string an.

        Kommentar


        • #5
          OK, eval is ne schlechte Idee, damit kommst du noch weniger zurecht ...

          Seh ich richtig, dass $plusminus sowieso nur + oder - sein kann ?
          Dann lass das einfach von einem IF oder switch Auswerten. Denn das, wass du ganz oben versucht hast, ist nur, dass du Zeichenketten zusammenfügst, also weit entfernt von Rechenoperation:

          PHP-Code:
          $summe2 $summe.$plusminus.$count
          bewirkt das gleiche

          Kommentar


          • #6
            Ich dachte das es nur ein formtierungsproblem ist das das script die sache nicht berechnet. meinst du das es da keine "einfachere" möglichkeit als if oder switch gibt - ich hänge da schon in der "20"(übertrieben) if bzw. switch.

            das problem ist - ich möchte in einem shopsystem realisieren wo der admin eingeben kann -

            z.b. Zahlart - kann frei eingegeben werden
            abzug/draufschlagen (plusminus)
            höhe ($count) - also wieviel

            jetzt werden diese werte wieder aus der datenbank ausgelesen und sollen !eigentlich! berechnet werden

            Kommentar


            • #7
              Also einfacher als mit if/switch isses doch wirklich nicht, ein if und ein elseif bzw. else Block, und die Sache ist erledigt
              Zuletzt geändert von EEBKiller; 16.09.2005, 22:52.

              Kommentar


              • #8
                wieso?
                PHP-Code:
                $a 10;
                $b 5;
                $op '-';
                $b$op.$b;
                echo 
                $a $b;
                echo 
                '<br />';
                // ----
                $b 5;
                $op '+';
                $b$op.$b;
                echo 
                $a $b
                klappt auch mit strings. liegt afaik daran, dass php keinen type cast kennt. allerdings sollte man die grundzüge der addition beherrschen
                Kissolino.com

                Kommentar


                • #9
                  Aber 10 Zeilen für so eine Milchmädchen Rechnung ?
                  Mit If hat/Else hat man 5 und mit dem ? : - Operator eine


                  $ergebnis = ($plusminus == "+") ? $summe + $count : $summe - $count;

                  Kommentar


                  • #10
                    Original geschrieben von EEBKiller
                    Aber 10 Zeilen für so eine Milchmädchen Rechnung ?
                    1. sinds im prinzip nur 2 zeilen ... 10 fürs beispiel, damits auch jeder begreift (hat wohl nicht so ganz geklappt)
                    2. gings mir darum, dass es geht, nicht darum, was unter umständen besser ist
                    3. dürfte es im nanosekundenbereich deutlich schneller sein
                    Kissolino.com

                    Kommentar


                    • #11
                      Danke für eure hilfe.

                      Kommentar

                      Lädt...
                      X