Bobby: Überprüfen ob Spalte vorhanden ist.

Moin

Wie überprüfe ich (entweder per PHP oder per Query) ob in einer MySQL-Datenbank eine bestimmte Spalte vorhanden ist und wie füge ich diese der Tabelle an, wenn die gesuchte Spalte nicht vorhanden ist.

Für Tipps wäre ich dankbar.

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  1. Hi,

    Wie überprüfe ich (entweder per PHP oder per Query) ob in einer MySQL-Datenbank eine bestimmte Spalte vorhanden ist

    http://dev.mysql.com/doc/refman/4.1/en/describe.html

    und wie füge ich diese der Tabelle an, wenn die gesuchte Spalte nicht vorhanden ist.

    http://dev.mysql.com/doc/refman/4.1/en/alter-table.html

    MfG ChrisB

    1. Moin

      http://dev.mysql.com/doc/refman/4.1/en/describe.html
      http://dev.mysql.com/doc/refman/4.1/en/alter-table.html

      Danke. genau das brauchte ich.

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  2. Hello,

    Für Tipps wäre ich dankbar.

    einen hätte ich auf Anhieb: Wenn du nicht gerade ein Installations- oder Upgradeskript schreibst, aber trotzdem eine Spalte ergänzen musst, dann hast du einen Design-Fehler und solltest dein Vorgehen ändern.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Wenn du die Nadel im Heuhaufen nicht findest, zünde den Heuhaufen an.
    1. Moin

      einen hätte ich auf Anhieb: Wenn du nicht gerade ein Installations- oder Upgradeskript schreibst, aber trotzdem eine Spalte ergänzen musst, dann hast du einen Design-Fehler und solltest dein Vorgehen ändern.

      Hm... das stimmt mich nachdenklich. Ich habe es nun umgesetzt, und brauche dies für ein dynamisches Lang-Set, das vom Admin gefüllt wird. Und wenn eine Sprache hinzukommt, muss eben eine Spalte angefügt werden in der Tabelle. Ist die Herangehensweise nicht i.O.????

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
      1. yo,

        Und wenn eine Sprache hinzukommt, muss eben eine Spalte angefügt werden in der Tabelle. Ist die Herangehensweise nicht i.O.????

        das ist genau der grund, worauf Rouven dich aufmerksam machen wollte, dass du eher einen Fehler im Datendesign hast. Das anlegen von Spalten kannst du bei einem geeigneten Datenbankdesign verhindern. Es "riecht" nach einer n:m beziehung.

        Ilja

        1. Moin

          das ist genau der grund, worauf Rouven dich aufmerksam machen wollte, dass du eher einen Fehler im Datendesign hast. Das anlegen von Spalten kannst du bei einem geeigneten Datenbankdesign verhindern. Es "riecht" nach einer n:m beziehung.

          Ilja

          hmmm... ja ok... Ich wollte halt nicht tausende einzelne Tabellen für jede Sprache, oder für jeden Datentyp. Ich wollte dies alles einfach in einer Tabelle stehen haben. Was ist der Nachteil dieses Vorgehens?

          Ich lass mir z.B. die Reihe für Langset "EN" als Array in mein PHP-Script übergeben und verwende dies da. Wie soll ich das sonst lösen? Einzelne Tabelle für die Sprachen-definition. eigene Tabelle je Sprache?

          Gruß Bobby

          --
          -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
          -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
          ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
          1. Hi,

            Ich wollte halt nicht tausende einzelne Tabellen für jede Sprache

            Sollst du ja auch nicht - bloss nicht.

            Ich wollte dies alles einfach in einer Tabelle stehen haben.

            Das sollst du ja auch - in einer extra Sprachtabelle.

            Die koennte auf die ID einer anderen Tabelle referenzieren (also ID der "Stelle", an der der jeweilige Textteil benoetigt wird), und des weiteren ein Sprachkuerzel sowie den Text in der jweiligen Sprache enthalten.

            id | textId | lang | text
             1 |   4711 |   de | Ich bin der Text fuer Position 4711
             2 |   4711 |   en | I'm the text for position 4711
            ...

            Was ist der Nachteil dieses Vorgehens?

            Na das hast du doch bereits festgestellt - dass du an der Daten*struktur* herumpfriemeln musst, wenn eine neue Sprache hinzukommt.

            MfG ChrisB

      2. Hi,

        Ich [...] brauche dies für ein dynamisches Lang-Set, das vom Admin gefüllt wird. Und wenn eine Sprache hinzukommt, muss eben eine Spalte angefügt werden in der Tabelle. Ist die Herangehensweise nicht i.O.????

        Was spricht denn gegen das Ablegen der Sprachversionen in einer eigenen Tabelle - mit einem Sprachschluessel als zusaetzlichem Feld?

        MfG ChrisB