Set/Enum Feld bei Mysql mit PHP auslesen

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:

$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

$sql = "SHOW COLUMNS FROM foo LIKE 'bar'";

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

Viel Spass damit!

Ein Gedanke zu „Set/Enum Feld bei Mysql mit PHP auslesen“

Schreibe einen Kommentar zu Augustina Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert