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

  • asa
    hat ein Thema erstellt Variable in Datenbankentrag.

    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

  • lazydog
    antwortet
    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

    Einen Kommentar schreiben:


  • cycap
    antwortet
    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

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    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!

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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"

    Einen Kommentar schreiben:


  • asa
    antwortet
    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

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Also ich würde sowas error by design nennen...

    Einen Kommentar schreiben:


  • Feelex
    antwortet
    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!

    Einen Kommentar schreiben:


  • asa
    antwortet
    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 ??

    Einen Kommentar schreiben:


  • Feelex
    antwortet
    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.

    Einen Kommentar schreiben:


  • asa
    antwortet
    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

    Einen Kommentar schreiben:


  • dex
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X