• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

PHP Variable in MySQL DB speichern

atomfried

Leipziger Reinette
Registriert
02.04.05
Beiträge
1.804
hallo!
ich habe eine variable angelegt die eine url enthält, also:
Code:
$domain = "www.webseite.de";

Nun habe ich in der Datenbank eine Liste mit verschiedenen Links. Einige davon sollen die $domain ausgeben plus einem unterverzeichnis, also so:

Bei manchen habe ich nun im db feld sowas reingeschrieben:
Code:
http://<?php echo $domain; ?>/verzeichnis1

Es wird auch genauso ausgeben aber die variable wird nicht aufgelöst. Es steht zwar genauso im Sourcecode aber der link verweist auf:
Code:
http://<?php%20echo%20$domain;%20?>/verzeichnis1

der code direkt in das php file reinkopiert erzeugt natürlich den richtigen link.

was habe ich falsch gemacht?
danke!
 

Rysk

Jerseymac
Registriert
21.10.07
Beiträge
457
ALso beim ersten Hingucken hätte ich gesagt "Dat kann ja nich gehen". Warum?

Nun, du hast die Einträge in der DB, diese werden als ganz normale Zeichenketten behandelt, und wenn du sie ausgibts, dann erscheinen sie auch als solche.

Hier stellen sich dann noch zwei weitere grundsätzliche Probleme. Zum einen wird die Zeichenkette beim Ausgeben nicht korrekt ausgewertet. Das heißt, der php-Teil wird ja zum Zeitpunkt des Ausgebens nicht noch einmal durchlaufen. Sonst wären ja die PHP-Start und End-Tags nicht mehr vorhanden, oder du hättest eine Fehlermeldung erhalten etc. Das ist ja nicht der Fall, sondern der Teil kommt ohne weitere Verarbeitung durch die Ausgabe

Das zweite Problem ist, dass selbst wenn der PHP-Teil an dieser Stelle korrekt ausgewertet werden würde, die Variable $domain an der Stelle vollkommen unbekannt ist. Das echo würde dann eine leere Zeichenkette zurückgeben und hättest als Ergebnis den Link auf das Verzeichnis ohne die Domain.


Um die ganze Sache zu lösen würde ich schon vollkommen anders an die Sache heran gehen. Das Problem ist ja, dass du nur bei manchen Einträgen die Domain hinzufügen willst, korrekt?

Dann wäre es imho viel leichter und schneller, in der DB eine neue Spalte anzulegen, in welcher du eine Flag auf entweder 1 oder 0 setzt, je nachdem, ob die Domain eingefügt werden soll.

Und an der Stelle, wo du dir die Einträge mit PHP aus der DB holst, überprüfst du mittels "if", ob die Flag gesetzt ist oder nicht und hängt eben die Domain ran oder eben nicht.

MfG, Rysk
 

atomfried

Leipziger Reinette
Registriert
02.04.05
Beiträge
1.804
danke für die antwort. das werde ich wohl am ende auch so machen müssen. das problem ist aber das die variable am ende auch in texten ab und zu auftauchen sollte, deswegen wäre mir eine lösung lieber in der ich die variablen mit in der datenbank speichern könnte. bin eben noch auf die variablen variablen gestoßen, also $$domain. ob das eine lösung ist muss ich noch rausfinden.
 

Rysk

Jerseymac
Registriert
21.10.07
Beiträge
457
das problem ist aber das die variable am ende auch in texten ab und zu auftauchen sollte, deswegen wäre mir eine lösung lieber in der ich die variablen mit in der datenbank speichern könnte.

Was meinst du mit den Texten?

Wenn du die Variablen unbedingt mitspeichern willst, musst du einen Platzhalter in die Zeichenkette reinsetzen, z.B. "$domain" und dann am Ende, jedesmal wenn du sie ausgibts, musst du sie von Hand durchlaufen und schauen, ob der Platzhalter drin ist und wenn erforderlich den Platzhalter durch die entsprechende Domain ersetzen.

Quasi also das, was du beim ersten Mal schon machen wolltest mit dem Unterschied das du nun weißt, dass du die Verarbeitung von selbst machen musst.