Typ von SET-Feldern auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Typ von SET-Feldern auslesen

    Hallo,

    Ich würde gerne in einem Formular eine Liste mit Checkboxen ausgeben, die für jeweils einen Wert in einem SET-Feld in einer MySQL-Tabelle stehen.
    Da der Umfang der SET-Liste variieren könnte, sollen die einzelnen Namen der Werte des SET-Felds direkt aus der Tabelle gelesen werden.

    Also aus einem SET:
    SET('med', 'bio', 'chem',...)

    sollen die Werte med, bio, chem etc. ausgelesen werden und als Bezeichner für die Checkboxen dienen.

    Allerdings liefert die Funktion mysql_field_type() nur string als Wert zurück. Wie ist es möglich an die Werte heranzukommen?

  • #2
    Code:
    SHOW FIELDS FROM table LIKE 'columnname'
    oder eine ähnlich anweisung ... sollte dir helfen
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Vielen Dank!

      Funktioniert einwandfrei...

      Kommentar


      • #4
        Ich hab noch einmal eine weitere Frage zum SET-Typ, der Typ des Felds wurde mir ja als string angegeben und wird auch als solcher ausgegeben, aber wie steht es mit der internen Darstellung in der Datenbank, werden tatsächlich komplette Strings gespeichert? Ich hätte vorher vermutet, dass für jeden Einzel-Wert genau ein Bit genutzt wird. Mit Strings wird ja doch einiges mehr an Speicherplatz verbraucht. Und wie steht es mit Umbenennen einzelner Werte (sagen wir, aus chem sollte chm werden), müsste man dann ein komplettes Update über die Tabelle laufen lassen, das alle Vorkommen von chem durch chm ersetzt?

        Ich hoffe jemand kann mich aufklären...

        Kommentar


        • #5
          werden tatsächlich komplette Strings gespeichert?
          nicht wirklich, aber irgendwo müssen die werte ja hin ...
          Ich hätte vorher vermutet, dass für jeden Einzel-Wert genau ein Bit genutzt wird.
          ja, so steht es hier bei mir geschrieben ...
          müsste man dann ein komplettes Update über die Tabelle laufen lassen, das alle Vorkommen von chem durch chm ersetzt?
          ich vermute es mal *g zumindest mache ichs immer so, habe aber noch nie überprüft, ob es auch ohne gehen würde

          http://dev.mysql.com/doc/mysql/en/SET.html
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar

          Lädt...
          X