MySQL: Inhalt von SET auslesen

sirina

Mitglied
Hallo Forum,

ich hoffe mir kann jemand weiterhelfen.
Ist es möglich, die Werte die in dem TYP SET drinstehen auch wieder auszulesen und wenn ja, wie?

Ich habe ein SET mit folgenden Werten:
xml,pdf,jpg,gif,png,doc,xls

Wie man sieht, alles Dateieindungen. Diese Werte würde ich jetzt gern auslesen, um sie weiterzuverarbeiten.

Im konkreten Fall geht es darum, Dateien hochzuladen. Deren Name, Beschreibung und noch ein paar weitere Infos werden dann in der Datenbank abgelegt. Nun ist es aber wichtig, abzufragen, ob die Dateiendung der hochgeladenen Datei auch korrekt ist. Wenn nicht (angenommen jemand will eine bmp-Datei hochladen) soll eine entsprechende Fehlermeldung erscheinen.

Bisher hab ich das fest in meinem PHP-Code drin, aber die Werte werden sich zukünftig von Projekt zu Projekt ändern.
In Projekt A dürfen z.B. nur die Dateien vom Typ pdf und doc hochgeladen werden und in Projekt B dann nur xml und gif.
Der Code soll sich aber nicht ständig ändern ;)

Hab ich mich jetzt verständlich ausgedrückt :confused:
Na, ich hoffe mal.

Für jede Hilfe bedanke ich mich schon jetzt im Voraus.

Lg, sirina
 
Passt glaube ich besser in s PHP-Forum, aber egal ;)

Bei deiner Überprüfung der Dateiendungen könntest du ein Array verwenden, wo die erlaubten Dateitypen enthalten sind. Diese Liste kannst du entweder aus einer Datei lesen (was schnell gehen würde) bzw. per Datei-Include dieses Array verwenden oder aus einer Tabelle lesen (ist denke ich etwas langsamer).

Soweit ich weiß gibt es in SQL keine Möglichkeit solch einer Überprüfung.
 
Aha... ok, Danke für den Link. Aber leider zu spät. Habs jetzt anders gelöst.Hab eine Tabelle, in der die Werte als "Text" drinstehen und les diese dann in ein Array aus. Dieses Array durchlaufe ich dann mit einer foreach schleife und komm so an meine Werte.

Für alle die es genauer wissen wollen (Achtung, ich arbeite mit Pear!):
PHP:
$dateityp_array = $this->form_obj->db_projekt->getCol("SELECT dateityp FROM dateityp_erlaubt;");
                    
          foreach ($dateityp_array as $dateiendung) {
            //hier kann man dann etwas mit $dateiendung anstellen, z. B. ausgeben:
            print_r($dateiendung);           
          }

Danke aber trotzdem für die Hilfe.
 
Zurück