php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2008, 20:06  
asa
Neuer Benutzer
 
Registriert seit: 18.07.2008
Beiträge: 4
asa befindet sich auf einem aufstrebenden Ast
Standard 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
asa ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.07.2008, 20:11  
dex
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 195
dex befindet sich auf einem aufstrebenden Ast
dex eine Nachricht über ICQ schicken
Standard

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
dex ist offline  
Alt 18.07.2008, 21:21  
asa
Neuer Benutzer
 
Registriert seit: 18.07.2008
Beiträge: 4
asa befindet sich auf einem aufstrebenden Ast
Standard

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

Geändert von asa (18.07.2008 um 21:37 Uhr).
asa ist offline  
Alt 18.07.2008, 21:25  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

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.
Young Jedi ist offline  
Alt 18.07.2008, 21:43  
asa
Neuer Benutzer
 
Registriert seit: 18.07.2008
Beiträge: 4
asa befindet sich auf einem aufstrebenden Ast
Standard

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 ??
asa ist offline  
Alt 18.07.2008, 21:48  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

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!
Young Jedi ist offline  
Alt 18.07.2008, 22:04  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Also ich würde sowas error by design nennen...
cycap ist offline  
Alt 18.07.2008, 22:37  
asa
Neuer Benutzer
 
Registriert seit: 18.07.2008
Beiträge: 4
asa befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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
asa ist offline  
Alt 21.07.2008, 16:39  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
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"
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 22.07.2008, 09:43  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

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
lazydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
variable wird nich erkannt. Marian PHP Tipps 2006 1 03.04.2006 21:25
PHPMailer findet eigene Variable net seejay PHP Tipps 2007 6 04.01.2006 12:55
problem mit variable snatch-ic PHP Tipps 2007 5 13.12.2005 13:18
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Variable als Variable behandeln ohne den Wert zu verwenden Pain-maker PHP Tipps 2005-2 4 11.09.2005 17:28
Session Variable oder Globale Variable ? PHP Tipps 2005-2 3 27.06.2005 21:49
Variable in Variable Matthiasnet PHP Tipps 2005 6 20.03.2005 23:28
[Erledigt] Fehlermeldung unterdrücken wenn keine variable übergeben... PHP Tipps 2005 6 20.03.2005 13:36
If variable $1 vorhanden dann nimm die, if variable $2 .... PHP Tipps 2005 8 13.02.2005 20:16
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
2 Schleifen durchlaufen PHP Tipps 2004 1 14.09.2004 14:33
[Erledigt] Datei einlesen -> in Variable schreiben PHP Tipps 2004 2 22.07.2004 11:33
variable Variablen requesten PHP Tipps 2004 5 08.06.2004 20:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rechnung in variable ausführen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum