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!
That’s a welg-thoulht-out answer to a challenging question