Befehl in einer Variable später ausführen

gerd87

Erfahrenes Mitglied
Hallo,

Ich habe mit einer while-schleife einen Befeh zusammengestellt, der folgendermaßen aussieht:
PHP:
$befehl = "\$Result[\"categories_id\"].\$Result[\"categories_image\"].\$Result[\"parent_id\"]"

wenn ich die Variable $befehl mit echo ausgebe, sieht es so aus:
$Result["categories_id"].$Result["categories_image"].$Result["parent_id"]

Jetzt möchte ich diesen befehl an einer anderen Stelle ausführen. Wenn ich statt dem Befehl "$Result["categories_id"].$Result["categories_image"].$Result["parent_id"]" die Variable "$befehl" eingebe, wird der Befehl nicht ausgeführt, obwohl in der Variable "$befehl" der richtige Befehl steckt.

Ich hoffe ihr habt mein Problem Verstanden
 
hab es mit dem eval() versucht.

aber als Fehlermedung kommt immer :
Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/xxx/db.php(92) : eval()'d code on line 1

der Quelltext sieht so aus:
PHP:
$str = '$Result["categories_id"]';
eval ("\$str = \"$str\";");
echo $str;
 
[phpf]eval[/phpf] is evil! Wenn man darauf angewiesen ist, [phpf]eval[/phpf] zu verwenden, hat man meistens einen grundlegenden Fehler in der Herangehensweise an ein Problem. In welchem Kontext willst du denn deinen "Befehl" ausführen? Es gibt sicher eine einfachere (und sicherere!) Möglichkeit.
 
Hi zusammen,

also ich weiss jetzt ned genau, ob ich das richtig überblicke aber du versuchst doch da nur einen String mit einer Schleife zu bilden oder?

Versuch doch mal Folgendes:
PHP:
while($bedingung) { 
$ausgabe .= $einzelergebniss; 
}
Damit sollte es eigentlich klappen.
 
Das ist richtig.
Der Befehl, den ich später ausführen will, wird mit einer Schleife erstellt und in eine Variable gepackt.
Das sieht so aus:
PHP:
$befehl = "\$Result[\"categories_id\"].\$Result[\"categories_image\"].\$Result[\"parent_id\"]"

jetzt möchte ich weiter unten den Befehl ausführen.
Statt den eigentlichen Befehl schreibe ich $befehl.
Das funktioniert aber nicht.
 
hmm,

also ich versuche es nochmal mit raten.

der Inhalt der Variable $befehl sieht ja aus, wie ´ne MySQL-Abfrage.

Und so wie es den Anschein macht, möchtest du in $befehl die Ergebnisse der Abfrage hintereinander speichern.

dann versuch doch mal, statt dem ganzen Auskommentieren, die Anführungszeichen wegzulassen.

Also:

PHP:
 $befehl = $Result['categories_id'].$Result['categories_image'].$Result['parent_id'];

Und wenn ich jetzt total daneben liege, dann schließ ich mich Matthias an und sage, zeig mal mehr code und erklär nochmal ausführlich was genau du wie machen willst. Vielleicht liegt der Fehler ja auch in der Herangehensweise.
 
Zurück