1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP Variable in MySQL DB speichern

Dieses Thema im Forum "PHP & Co." wurde erstellt von atomfried, 09.10.08.

  1. atomfried

    atomfried Leipziger Reinette

    Dabei seit:
    02.04.05
    Beiträge:
    1.781
    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!
     
  2. Rysk

    Rysk Jerseymac

    Dabei seit:
    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
     
  3. atomfried

    atomfried Leipziger Reinette

    Dabei seit:
    02.04.05
    Beiträge:
    1.781
    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.
     
  4. Rysk

    Rysk Jerseymac

    Dabei seit:
    21.10.07
    Beiträge:
    457
    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.
     

Diese Seite empfehlen