URL mit Variable in MySQL-Tabelle abspeichern

Herbert02

Grünschnabel
Hallo,

ich möchte in meiner in PHP programmierten Homepage folgenden Link zu einer URL einsetzen:
<A HREF ="http://www.xxxxxxx.de?parameter1=param1&parameter2=$param2">xyz</A>

Dieser Link auf eine URL sollte möglichst vollständig in einer MySQL-Tabelle abgespeichert und von dort dynamisch in die PHP-Homepage übernomen werden. Der Ausdruck ist in einem Feld vom Typ VARCHAR in der MySQL-DB gespeichert. Dies klappt auch soweit, d.h. ich kann durch eine SQL-Abfrage diesen Link direkt in den Quellcode meiner Homepage integrieren.

Der Clou ist allerdings, dass es sich bei dem Parameter2 um eine Variable ($param2) handelt. Wenn ich die SQL-Abfrage ausführe, wird dieser Link 1:1 übernommen, d.h. in der Form
<A HREF ="http://www.xxxxxxx.de?parameter1=param1&parameter2=$param2">xyz</A>

Das Problem ist, dass die Variable $param2 nicht mit ihrem aktuellen Wert eingesetzt wird.

Leider weiss ich nicht, woran dies liegt, da meine PHP-und MySQL-Kenntnisse unzureichend sind. Ich weiss jedoch, dass nur Strings mit Anführungszeichen den Wert von Variablen innerhalb des Strings ausgeben können. Ich weiss aber nicht, wie dieser String von MySQL behandelt wird und ob diese Regel dann auch gilt.

Meine Frage: hat jemand Erfahrungen mit der Abspeicherung von URL, die auch &parameter (als Variable) enthalten, in MYSQL-Tab. und deren Verwendung in einem PHP-Script und kann mir Hilfe leisten?

Vielen Dank und viele Grüße
Herbert
 
Herbert02 hat gesagt.:
Meine Frage: hat jemand Erfahrungen mit der Abspeicherung von URL, die auch &parameter (als Variable) enthalten, in MYSQL-Tab. und deren Verwendung in einem PHP-Script und kann mir Hilfe leisten?
Ja und das Vernünftigste ist, die Daten in der Datenbank zu speichern und die Ausgabe und Formatierung im auslesenden Skript oder im Query zu machen.
Also ein Feld URL und ein Feld Linktext in der DB abspeichern und dann beim oder nach dem Auslesen den String zusammensetzen.

Dein Problem jedoch ist vermutlich ein reines String-Problem.
Vermutlich sitzt der String in einfachen Anführungszeichen, da die doppelten nicht escaped sind. In solchen Strings werden Variablen nicht geparst. Du musst also den String unterbrechen und mit Hilfe des String-Verknüpfungsoperator (.) die Variable einfügen:
PHP:
$s='<A HREF ="http://www.xxxxxxx.de?parameter1=param1&parameter2='
        .$param2.'">xyz</A>';

Gruß hpvw

PS: Mit oben genannter DB-Struktur könnte ein Query ungefähr so den String zusammensetzen:
Code:
SELECT
CONCAT('<A HREF ="',
    URL,
    '">',
    Linktext,
    '</A>')
AS link
FROM tabelle

PPS: Auch in URLs muss das kaufmännische Und (&) als &amp; maskiert werden.
 
ich wurde dir folgendes raten:

<A HREF ="http://www.xxxxxxx.de?parameter1=param1&parameter2=$param2">xyz</A>

in einer tebelle z.B. mit zwei spalten abspeichern.

-Bez
-URL

aber die url OHNE der HTML-Anweisung <a href ....abspeichern, d.h.

$bez="xyz";
$url1="http://www.xxxxxxx.de?parameter1=param1&parameter2=$param2";

und dann der aufruf durch:
<a href="<? echo $url1; ?>" ><? echo $bez."</a>";?>

Gruß
 
Vielen Dank für Eure Tipps. Gibt es auch eine Möglichkeit, den Ausdruck komplett in einer Tabellenspalte, d.h. ohne ihn zu trennen, zu speichern?

Viele Grüße
Herbert
 
Der String, den ich oben als $s zusammengesetzt habe, kannst Du doch Deinem Query übergeben?
 
Zurück