Tobi: Prüfen ob Feld in Tabelle schon vorhanden

Hallo ihr alle und frohe Pfingsten!

Weiss jemand von Euch einen mySQL Befehl oder eine saubere Vorgehensweise um zu prüfen, ob ein Feld schon in der Datentabelle vorhanden ist?

Also z.B. um zu prüfen, ob die Sprache Deutsch (Feld 'de') schon enthalten ist?

Schon jetzt vielen Dank,
schöne Grüße,
Tobi

  1. Hallo Tobi,

    Weiss jemand von Euch einen mySQL Befehl

    ja, SHOW COLUMNS.

    In einer normalen Anwendung ist das aber alles andere als sauber :-)

    oder eine saubere Vorgehensweise um zu prüfen, ob ein Feld schon in der Datentabelle vorhanden ist?

    die saubere Vorgehensweise ist folgende:
    Du weißt, wie Deine Tabellenstruktur aussieht und hast deswegen diese Prüfung
    nicht notwendig. Normalerweise sind die einzigen Werkzeuge, die solche Prüfungen
    vornehmen sollten, Verwaltungswerkzeuge der Datenbank.

    In normalen Anwendungen ist es _nicht_ erforderlich, die Tabellenstrukturen im
    Normalbetrieb zu ändern. Es ist typischerweise ein Zeichen nicht optimalen
    Tabellendesigns, wenn solche Änderungen notwendig sind. In nahezu allen Fällen
    ist es sinnvoller, eine Erweiterung dadurch durchzuführen, dass man einen
    Datensatz, d.h. eine Zeile, in einer Tabelle hinzufügt. Solche Änderungen sind
    tägliches Brot.

    Also z.B. um zu prüfen, ob die Sprache Deutsch (Feld 'de') schon enthalten ist?

    SHOW COLUMNS FROM deine_tabelle LIKE 'de'

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      vielen Dank für die schnelle Antwort!
      Genau das habe ich gesucht.

      In einer normalen Anwendung ist das aber alles andere als sauber :-)

      Ja, hast schon recht... ist aber für ein eigenes CMS-Backend gedacht, also nicht die normale Anwendung, sondern die Verwaltung der normalen anwendung... daher sollte das schon ok sein.

      Schönen Pfingsmontag noch,
      Tobi

    2. Hallo Vinzenz,
      es tut mir leid - jetzt kämpfe ich doch schon wieder seit über einer Stunde mit deinem Befehl --- der mir zwar in den sql editor von phpmyadmin eine wunderbare reihe auswirft, die ich allerdings aus irgendwelchen gründen nicht zählen kann:

      $sql = "SHOW COLUMNS FROM tabellenname LIKE 'de'";
      $res = db_query($db,$sql);

      und dann geht es weder mit:
      $anz = mysql_num_rows($res);

      noch mit:
      $anz = mysql_result($res,0,"anzahl");
      weil ich den SHOW COLUMNS befehl auch nicht mit COUNT AS Anzahl benutzen kann...

      Das MySQL Handbuch konnte mir auch nicht helfen...

      Weisst du, wie ich das hinkriege?

      Ziel ist enweder 0 oder 1 als Ergebnis zu bekommen, um entsprechend das Feld anzulegen oder nicht.

      Freue mich auf Antwort...

      schöne Grüße,
      Tobi