Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable in Datenbankentrag

Einklappen

Neue Werbung 2019

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

  • Variable in Datenbankentrag

    Hallo!
    ich wollte verschiedene Rechnung in der Datenbank speichern.

    Eine solche Rechnung enthält die Variable $x, die erst im Verlauf des php Scripts berechnet wird und dann dort eingefügt werden soll.

    Definiere ich die Variable im Script und rufe den DB Eintrag auf, so wird die DB Variable $x jedoch nicht ersetzt.

    Wenn ich nun str_replace anwende, wird zwar die Variable ersetzt, ich erhalte jedoch z.b. folgendes:

    150 * 5

    Eigentlich sollte jetzt aber 750 da stehen

    Könnt ihr mir bei diesem Problem eventuell weiterhelfen ??

    Viele Grüße
    asa


  • #2
    Spontanlösung: Einklammern.
    Wenn du ne Lösung brauchst: Quellcode bitte posten
    Mit deinen Sätzen fang ich nicht wirklich viel an, das geht den anderen bestimmt genau so

    Kommentar


    • #3
      PHP-Code:
      $rechnung = ("SELECT
                                              rechnung
                          FROM 
                                              rechnungen
                          WHERE
                                          id = 1
                          "
      );
      $sql->query($rechnung);

      $fetchrechnung $sql->fetchRow();
      $rechnung         $fetchrechnung['rechnung'];
          
      -> 
      Das wär jetzt $rechnung 150 $x

      //Zur Abkürzung

      $x 5

      //So und das x aus der Datenbank wollt ich nun durch das untere x ersetzen, 
      //da es so nicht klappt hab ich str_replace genommen

      $rechnung str_replace("$x"$x $rechnung);

      echo 
      $rechnung;

      //so und jetzt kommt 150 * 5 raus, aber dieser Wert soll ja gerade berechnet werden.
      //Ein Problem ist doch bestimmt, dass das ein String ist, oder nicht? 

      Einklammer also {$x} hatte auch kein Erfolg

      Kommentar


      • #4
        Eval würde funktionieren, dabei musst du aber sehr auf die Sicherheit aufpassen

        Edit: Kommentiere bitte deine Kommentare richtig aus, es ist sonst sehr unangenehm, das ganze zu lesen.

        Kommentar


        • #5
          MMh, das ersetzen funktioniert dadurch schonmal , aber leider wird noch 150 *5 ausgegeben und nicht 750. Hast du dafür auch noch eine Lösung ??

          Kommentar


          • #6
            PHP-Code:
            eval("\$rechnung=\$rechnung;"); 
            Achtung!!!

            Verwende das NUR, wenn du dir sicher bist, das kein Fremder den Wert von $rechnung bestimmen kann, sprich die Rechnung ausführen kann. Er könnte beliebigen PHP-Code auf deinem Server ausführen!

            Kommentar


            • #7
              Also ich würde sowas error by design nennen...

              Kommentar


              • #8
                Zitat von Young Jedi Beitrag anzeigen
                PHP-Code:
                eval("\$rechnung=\$rechnung;"); 
                Achtung!!!

                Verwende das NUR, wenn du dir sicher bist, das kein Fremder den Wert von $rechnung bestimmen kann, sprich die Rechnung ausführen kann. Er könnte beliebigen PHP-Code auf deinem Server ausführen!
                Okay, danke für den Hinweis !

                Ich hab bei eval was falsch eingegeben, deshalb wurde es nicht berechnet. Jetzt klappts .

                Vielen Dank !!!!!!!!

                Viele Grüße
                asa

                Kommentar


                • #9
                  PHP-Code:
                  $x 5
                  $rechnung 
                  str_replace("$x"$x $rechnung);
                  echo 
                  $rechnung
                  Das klappt doch nicht wirklich?! Hier würde doch "$x" erst nach 5 geparst und dann 5 durch 5 ersetzt...
                  Verwende '$x' oder "\$x"
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Bei einem nur halbwegs vernünftigen DB-Design kann so ein Problem gar nicht auftreten. Es wird doch keine Rechnung in der DB gespeichert, sondern höchstens die Elemente einer Rechnung!
                    Gruss
                    L

                    Kommentar


                    • #11
                      Zitat von lazydog Beitrag anzeigen
                      Bei einem nur halbwegs vernünftigen DB-Design kann so ein Problem gar nicht auftreten. Es wird doch keine Rechnung in der DB gespeichert, sondern höchstens die Elemente einer Rechnung!
                      Zitat von cycap
                      Also ich würde sowas error by design nennen...

                      Auf mich hört ja eh nie einer PÜH

                      Kommentar


                      • #12
                        Zitat von cycap Beitrag anzeigen
                        Auf mich hört ja eh nie einer PÜH
                        *über-Kopf-streiche
                        Ich habs schon gelesen, vermute aber, dass asa das so nicht verstanden hat
                        Gruss
                        L

                        Kommentar

                        Lädt...
                        X