tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
698
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sirina sirina ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    Hallo Forum,

    ich habe da mal eine Frage zur Describe-Syntax in MySQL:

    Ich möchte mir gerne nur die Spalte "Field" aus der Strukur-Übersicht ausgeben lassen.
    Mit
    Code :
    1
    
    Describe web;
    funkioniert zwar die Ausgabe (die Strukur wird mir angezeigt) aber eben alle Spalten (also auch "Type", "Null", "Key"; "Default", "Extra"). Jetzt brauch ich aber nur das Feld "Field". Die Syntax
    Code :
    1
    
    Describe web Field
    funktioniert leider nicht.

    Geht das überhaupt so wie ich mir das vorstelle? Ich wäre euch sehr sehr dankbar!

    Vielen lieben Dank bereits im Voraus!
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Wie in der Doku ersichtlich, ist das nicht vorgesehen.

    Ich habe eben auch mal versucht mit temporären Tabellen oder Subquerys die Informationsflut einzudämmen. Das erzeugt aber auch nur Fehler, da die dazu nötige Syntax nur SELECT-Statements akzeptiert und DESCRIBE nun mal kein SELECT ist.

    Es sollte in Deiner Anwendungssprache jedoch relativ unproblematisch sein, nur die eine Spalte (die mit den Spalten) darzustellen.

    Weitere Möglichkeiten, Informationen über Felder zu bekommen, fallen mir im Moment nicht ein, was nicht heisst, dass es sie nicht gibt.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  3. #3
    sirina sirina ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    Hi hpvw,

    vielen Dank für deinen schnellen Post.
    Ich hab die Ausgabe für eine Oberfläche gebraucht. Ich arbeite mit PHP und konnte somit das Problem umgehen . Ich bin zur "Show Columns from tabellennamen" übergegangen und da mir die show-Syntax ein Array zurückliefert bin ich nun so vorgegangen, mir nur die erste Stelle im Array - und somit das Field - auszugeben. Das ist recht einfach und schnell gelöst
    Vielleicht kommt so ne Abfrage, wie ich sie gebraucht hätte ja mal in irgend einer MySQL-Version .


    Für alle, die vor einem ähnlichen Problem stehen:
    1. MySQL-Query basteln
    Code :
    1
    
    $data =& $db->getAll('Show columns from  ' . $tabelle);
    2. Eine Schleife basteln, die das ergebnis ausliest:
    Code :
    1
    2
    3
    4
    5
    
    foreach ($data as $databases => $value){    
        if(is_array($value)){
                echo $value['Field'] . "<br>";
        }
    }

    Die Syntax mag ein wenig seltsam erscheinen. Das liegt daran, dass ich mit PEAR (PHP Extension and Application Repository) arbeite. Der Code aber auf das "normale" PHP ganz leicht übertragbar.

    So, ich bastel dann mal weiter!

    Vielen lieben Dank nochmal!
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Zitat Zitat von sirina
    Ich bin zur "Show Columns from tabellennamen" übergegangen und da mir die show-Syntax ein Array zurückliefert
    Kannst Du mir erläutern, wie Du das meinst?
    Bei mir liefern die Queries DESCRIBE tabellenname und SHOW COLUMNS FROM tabellenname genau das gleiche Resultset.
    Oder hat das mit der internen Verabeitung in dem PEAR-Paket zu tun?

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  5. #5
    sirina sirina ist offline Mitglied Bronze
    Registriert seit
    Aug 2004
    Beiträge
    41
    Show Columns und Describe ist das selbe. Kannst du nehmen, wie du willst. Es ändert nichts am Ergebnis. Describe ist halt eine "Abkürzung" von "Show Columns". Nur falls es mal der Fall sein sollte, dass jemand an meinem Code arbeitet und nicht alle Syntax-Ausdrücke kennt, kann er sich unter "Show Columns" evtl. eher etwas vorstellen, als "Describe". Der Code ist zwar kommentiert - aber bei "show columns" weiß man gleich, was gemeint ist. Zumindest seh ich das so.
    Mit Pear hat das nix zu tun. Query ist Query, egal ob in PHP aufgebaut oder in Java oder in sonst was
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Ah, Danke, dann habe ich Dich nur falsch verstanden.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 25.01.10, 15:02
  2. JavaScript: Inhalt einer Spalte einer Tabelle auslesen ("td"-Tag)
    Von hamburger83 im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 01.10.08, 15:20
  3. Zeilen auslesen die mit "L" beginnen aber nicht "Li"
    Von hatebrotherone im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 11.10.07, 13:34
  4. Antworten: 1
    Letzter Beitrag: 29.01.07, 12:46
  5. Datensätze wo ID in einem "TEXT" - Field ist
    Von maga147 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 05.12.06, 15:59