[PHP] "Variablen" aus DB auslesen ?

CPU

Lieutenant
Registriert
Jan. 2006
Beiträge
704
Wenn ich ein Forum, CMS (oder etwas anderes mit einem Login oder komplizierten Ordnerstrukturen) programmiere sollte ich die Config Variablen (Path, .. etc.) in der DB speichern. Die Datenbank hätte dann zwei Felder: "Name" (der Variable) und "Value" (Inhalt). Also würde das in etwa so aussehen:

Code:
ID |Name   | Value
------------------------
1  |Path    | /images/
2  |testVar | Belegung

Wie kann ich jetzt die Tabelleninhalte auslesen (= mit SQL ist ja klar) und diese in einem Array oder in Variablen speichern?

Bisher kenne ich es nur mit dem Befehl "mysql_fetch_array()" die Tabelle auszulesen. Das würde hier ja nicht klappen, da dann der Array, der mir zurückgegeben wird dann alle Inhalte des Felds Name und Value hätte, und ich alles mit einer While-SChleife auslesen müsste.

Im besten Fall würde es nacher so aussehen:
PHP:
$Conf = array("Path" => "/images/", "testVar" => "Belegung");

Kann mir jemand dazu Tipps geben?

CPU

P.S.: Man könnte ja die Variablen Namen als Spaltenbezeichnungen nehmen, doch möchte ich das nicht, da viele Variablen nötig wären und die Tabelle dann zu briet würde. :freaky:
 
Hallo,

das machst am besten so:
PHP:
$sqlRes = mysql_query(...);

$config = array();

while( $sqlRow = myssql_fetch_assoc($sqlRes) ) {
 $config[$sqlRow['name']] = $sqlRow['value'];
}
So wir jedes Name-Wert Paar an das Array angehängt.

Gruß Tobias
 
Also ich verwende immer eine kleine Mysql Klasse (siehe Anhang), die mein Lehrer irgendwann mal geschrieben hat... Ich würde immer ALLES in Klasse packen. Das ist einfach geiler :)
 

Anhänge

  • class_mysql.txt
    4,8 KB · Aufrufe: 207
Ich möchte dazu noch anmerken, dass auch sowas möglich ist:

PHP:
$variablenname = "path";
$$variablenname = "/images/";

echo $path; // Ausgabe: /images/

Hier gibt es dann eine Variable namens $path mit dem Wert "/images/". Mit diesem Ansatz könnte man es also sogar so lösen, dass es wirklich Variablen gibt, die so heißen, wie in der Tabelle (wieso auch immer man das wollte), indem man zum Beispiel so macht:

PHP:
$sqlRes = mysql_query(...);

while( $sqlRow = myssql_fetch_assoc($sqlRes) ) {
   $$sqlRow['name']= $sqlRow['value'];
}
 
Zurück
Oben