Variable aus Datenbank-Eintrag erzeugen

stega

Erfahrenes Mitglied
Hi,

ich habe eine klitzekleine Frage:

ich habe hier eine mysql-Datenbank, die zwei Spalten hat: in der ersten steht der Name der Variablen in der zweiten deren Wert.

Bsp:

Code:
var1 - abc
var2 - def
var3 - jkh

Jetzt lese ich das mit einem "SELECT *" -mysql-Befehl aus und möchte erreichen, dass mir die Werte aus der ersten Spalte als variablen erzeugt werden, die die Werte der zweiten Spalte enthalten - sprich also:

PHP:
$var1 = "abc";
$var2 = "def";
$var3 = "jkh";

Könnt ihr mir kurz sagen, wie das geht? Ich hab jetzt inzwischen bei php.net herausgefunden, dass man irgendwie mit {} und nem doppeltem $$ ne Variable aus nem Wert erzeugen kann, aber leider klappt das bei mir (noch) nicht?!

Vielen Vielen Dank für eure Hilfe!

liebe Grüße
 
Hi,

das ginge so:

PHP:
${$row['spalte1']} = $row['spalte2'];

Aber wofür möchtest Du Variablennamen in einem Datenbankfeld speichern? :suspekt:

LG
 
ok, danke ich werds mal einbauen und versuchen ;)

ich mach das, weil ich Variablen, die für ne Homepage wichtig sind, in einer Datenbank speichere, damit ich sie über ein Interface editieren kann und trotzdem bei den Seitenaufrufe auflese und dementsprechend reagiere ;)

In einer php-Datei kann ich die ja nicht einzeln editieren dann so einfach.


P.S: ich habs jetzt probiert - aber es funktioniert nicht so ganz. Wie kann ich denn einen Text-String dann als Wert der Variablen nehmen? Denn sobald ich bei einer Variablen ankomme, die z.B. einen kurzen Text als Wert hat, da bricht er ab.... :(
 
Zuletzt bearbeitet:
Hi,

ich mach das, weil ich Variablen, die für ne Homepage wichtig sind, in einer Datenbank speichere, damit ich sie über ein Interface editieren kann und trotzdem bei den Seitenaufrufe auflese und dementsprechend reagiere ;)

so etwas in der Art hatte ich befürchtet. Lege lieber pro Variable eine entsprechend benannte Spalte in einer Tabelle an und speichere dann dementsprechend auch nur einen Datensatz pro Seite.

LG
 
Wiso machste net eine .php Datei, die du überall im Kopf einbaust (include "vars.php";) und definierst da die Variablen...
 
na ich hab das jetzt so gedacht:
ich habe eine php-datei: inc.php, die wird auf allen Seiten eingebunden. Sie enthält u.a. die Verbinduungsbefehle zur Datenbank und eben diese "global definierten" Variablen.

Jetzt wollte ich aber der Verwaltung der Homepage ermöglichen, diese Variablen zu ändern und editieren (also z.B. die Überschrift der Seite mit der variablen $header = "abc def ghj" umzuändern und anzupassen).

Um das am Besten zu machen, dachte ich, wäre eine Tabelle in der Datenbank ja nicht schlecht, weil man dann einfach Werte auslesen kann mit der inc.php-datei und schon hätte man alle Variablen zur Verfügung UND kann leicht über ein Formular die Daten ändern lassen.

WIe meinst du das mit den verschiedenen Spalten?

Habt ihr ne gute Idee, wie ich das sonst noch lösen könnte?

vielen dank für eure Hilfe!
 
Hi,

Jetzt wollte ich aber der Verwaltung der Homepage ermöglichen, diese Variablen zu ändern und editieren (also z.B. die Überschrift der Seite mit der variablen $header = "abc def ghj" umzuändern und anzupassen).

Jo, das ist dann wohl die Grundform von Content Management. ;)
Und wie unterscheidest Du mit dem Datenbankmodell die Überschriften für die verschiedenen Seiten?
Man macht das eher so, dass es in der Tabelle ein Feld "id" zum Identifizieren der Seite gibt und eben die verschiedenen Datenfelder, z.B.:


id | header | inhalt
1 | Seite1 | blabla
2 | Seite2 | sdfkljghdfkljgh


LG
 
ja, es ist ein CMS ;) Und die Variablen will ich eben in der Tabelle speichern lassen.

Jetzt habe ich z.B. die variablen:
PHP:
$global_website_name = "Testhomepage";
$global_website_mail = "mail@testhomepage";
$global_website_version = 1;

Wie kann ich denn dann das mit id's aufrufen lassen?

Weißt du, im Endeffekt will ich in der DB dann stehen haben:
Code:
$global_website_name - Testhomepage
$global_website_mail                 -  mail@testhomepage
$global_website_version           - 1

In der Verwendung soll dann ausgelesen werden innerhalb der eingebunden inc.php-Datei, was in der Config-Tabelle steht und die Werte dann als Variablen genutzt werden....

Vorschlag?

dankeeee!
 
Hi,

Und die Variablen will ich eben in der Tabelle speichern lassen.

ja, dann lege für jede Variable ein Feld an. Wenn das globale Einstellungen sind, steht da dann halt nur der eine Datensatz drin.

Wenn Du auch Seiten änderbar machen willst, legst Du da halt auch Tabellen mit den editierbaren Feldern an, z.B. eine für news usw. Für jede (z.B. news-)Seite gibt es dann einen Datensatz, den Du über die ID eindeutig bestimmen kannst.

Aber wozu willst Du eigentlich das Rad neu erfinden? Kostenlose CMS gibt es doch wie Quallen in der Ostsee...

LG
 
Zurück