logo
Montag 6. Februar 2012
Zurück zur Kategorie

Set/Enum Feld bei Mysql mit PHP auslesen

Beitrag geschrieben von King of Darkness am 2007-09-01

Kurzbeschreibung:
In diesem Tutorial möchte ich zeigen wie man die möglichen Zustände eines Set oder Enum Feldes bei einer Mysqltabelle auslesen kann.
Ich habe schon öfters das Problem gehabt das ich in einer Tabelle, Felder als Typ Enum erstellt habe. Irgendwann kam dann eine Änderung, es wurde neue möglichkeiten hinzugefügt, oder es wurden mögliche Zustände entfernt. In der Anwendung wurden aber dann HTML-Selectfelder so gelassen wie sie waren, sprich mit alten Werten und es gab plötzlich Fehler.

Um diesem Problem aus dem Weg zu gehen kann man sich solche Datenbankfelder auslesen und anhand dessen die Selectformulare dynamisch zusammenbauen.

Ich gehe mal davon aus ihr könnt eine Verbindung zu einer MySql-Datenbank aufbauen und anfragen dort hin schicken, ansonsten schaut mal hier: Verbindung zu MySQL aufbauen + Abfrage


Wie sieht das ganze nun aus:

Code:

        $sql = "SHOW COLUMNS FROM foo LIKE 'bar'";
        $temp = mysql_query($sql);

        if(mysql_num_rows($temp)>0)
        {
            $row=mysql_fetch_row($temp);
            $werte =  explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1]));
        }


Dieses Stückchen Code gibt euch nun ein Array mit den verschiedenen Möglichkeiten zurück. Dieses Array könnt ihr dann mit einem foreach() durchgehen.

Nochmal kurz zur Erklärung
Code:
$sql = "SHOW COLUMNS FROM foo LIKE 'bar'";


foo ist hierbei eure Tabelle in dem sich das Feld bar befindet.

Viel Spass damit!
Um einen Beitrag zu bewerten musst du eingeloggt sein.