sockä Geschrieben 7. März 2006 Geschrieben 7. März 2006 Ja, der Titel sagt es ja schon... ich suche eine Funktion, die äquivalent zu mysql_field_type(), mysql_field_name() etc. arbeitet und mir den Kommentarwert eines MySQL-Feldes liefert. Also soll die Funktion bei folgender Tabelle: Name Type NULL Kommentar Extras ========================================== ID int(5) No ID-Wert auto_increment Name varchar(50) Yes Nachname VName varchar(50) Yes Vorname ... die Werte "ID-Wert", "Nachname" und "Vorname" liefern... ich kann im PHP-Handbuch aber keine entsprechende Funktion finden... oder übersehe ich da was?! Danke schonmal Zitieren
baba007 Geschrieben 7. März 2006 Geschrieben 7. März 2006 suchste vielleicht mysql_list_fields ( string DBname, string TABname [, resource Verbindungs-Kennung] ) ? Zitieren
robotto7831a Geschrieben 7. März 2006 Geschrieben 7. März 2006 Ähm. Bin ich jetzt im falschen Film oder Du? Der Defaultwert ist doch kein Kommentar. Frank Zitieren
sockä Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 Nein, das liefert leider auch nicht die Feld-Kommentare Schade... aber trotzdem danke... Zitieren
sockä Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 Ähm. Bin ich jetzt im falschen Film oder Du? Der Defaultwert ist doch kein Kommentar. Frank Das war ein Tippfehler; in Ausgangsthread habe ich es korrigiert... Zitieren
Amstelchen Geschrieben 7. März 2006 Geschrieben 7. März 2006 die doku zu mysql 5.0 und 5.1 (link) meint: 20.3. The INFORMATION_SCHEMA COLUMNS Table The COLUMNS table provides information about columns in tables. COLUMN_COMMENT Comment SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' [AND table_schema = 'db_name'] [AND column_name LIKE 'wild'] ich denke mal, dass man COLUMN_COMMENT auch in die obige query einbauen kann. s'Amstel Zitieren
sockä Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 ich denke mal, dass man COLUMN_COMMENT auch in die obige query einbauen kann s'Amstel Ja... nur leider habe ich MySQL 4.x Sorry, dass ich (mal wieder) vergessen habe das zu erwähnen... *opsi* Zitieren
baba007 Geschrieben 7. März 2006 Geschrieben 7. März 2006 Anmerkung: Die Funktion mysql_list_fields() ist veraltet. Stattdessen ist es vorzuziehen mit der Funktion mysql_query() den SQL-Befehl SHOW COLUMNS FROM table LIKE 'name' auszuführen. <?php $result = mysql_query("SHOW COLUMNS FROM sometable"); if (!$result) { echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error(); exit; } if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { print_r($row); } } ?>[/PHP] Zitieren
sockä Geschrieben 7. März 2006 Autor Geschrieben 7. März 2006 Hey, das liefert auch nicht das Kommentarfeld zurück, sondern nur sowas: array(12) { [0]=> string(4) "VName" ["Field"]=> string(4) "VName" [1]=> string(12) "varchar(100)" ["Type"]=> string(12) "varchar(100)" [2]=> string(3) "YES" ["Null"]=> string(3) "YES" [3]=> string(0) "" ["Key"]=> string(0) "" [4]=> NULL ["Default"]=> NULL [5]=> string(0) "" ["Extra"]=> string(0) "" } ... also alles bis auf den Kommentar Zitieren
Amstelchen Geschrieben 7. März 2006 Geschrieben 7. März 2006 Ja... nur leider habe ich MySQL 4.x dass der kommentar bei dir nicht aufscheint, liegt scheinbar an deiner mysql-version. verwendest du 4.0 oder 4.1? für mysql 4.0 gilt "The FULL keyword can be used from MySQL 3.23.32 on. It causes the output to include the privileges you have for each column. As of MySQL 4.1, FULL also causes any per-column comments to be displayed." für 5.0/5.1 gilt: "The FULL keyword causes the output to include the privileges you have as well as any per-column comments for each column." s'Amstel Zitieren
freq.9 Geschrieben 7. März 2006 Geschrieben 7. März 2006 Seit welcher Version kann man denn jeder Spalte einen Kommentar geben? Ich kenne das bisher nur, dass man der Tabelle einen Kommentar zuweisen kann, aber nicht den Spalten. Kann dazu auch keine wirklichen Informationen in der Manual von MySQL finden. Okay nun habe ich mal geschaut und diese Spaltenkommentare gibt es nur in der INFORMATION_SCHEMA Tabelle. Auf diese Datenbank kann jeder Benutzer zugreifen. Von daher könnte man vllt. einen Datenbanken übergreifenden JOIN machen, denn: SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' [AND table_schema = 'db_name'] [AND column_name LIKE 'wild'] Man kann das nämlich nicht über die eigentliche Tabelle laufen lassen. Ein JOIN über die eigentliche Datenbank.Tabelle zu INFORMATION_SCHEMA.Columns und es sollte gehen. Am besten schreibst du dir da ne Funktion für, damit es nicht zu umständlich wird. Zitieren
sockä Geschrieben 8. März 2006 Autor Geschrieben 8. März 2006 Seit welcher Version kann man denn jeder Spalte einen Kommentar geben? Ich kenne das bisher nur, dass man der Tabelle einen Kommentar zuweisen kann, aber nicht den Spalten. Kann dazu auch keine wirklichen Informationen in der Manual von MySQL finden. Guck mal in das Bild im Anhang... Das ist von MySQL 4.1 ps.: SHOW FULL COLUMNS geht leider auch nicht Zitieren
freq.9 Geschrieben 8. März 2006 Geschrieben 8. März 2006 o_O komisch bei mir gibts sowas nicht und ich habe phpMyAdmin 2.6.7 und MySQL 5.0. Hmmm... // Edit: Ich habe mich vertan. Ich habe phpMyAdmin 2.7.0-rc1. Aber ich habe lediglich folgende Felder: - Feld - Typ - Dokumentation - Länge/Set - Kollation - Attribute - Null - Standard - Extra Ich habe nun mal einen Freund gefragt, der sowieso schon ein recht exotisches phpMyAdmin* hat, aber der hat das auch nicht. Wie bekommt man das denn rein? *) Er hat sogar eine Tabellenübersicht im Dropdown im linken Frame und kann direkt auf Tabellen springen. Zitieren
sockä Geschrieben 8. März 2006 Autor Geschrieben 8. März 2006 Wie bekommt man das denn rein? Das kann ich auch nicht sagen - zumindest habe ich das bisher immer auf allen MySQL 4.x Tabellen gehabt. Auch mit mysql-front kann ich das Kommentar-Feld sehen... *kopf kratz* Zitieren
freq.9 Geschrieben 9. März 2006 Geschrieben 9. März 2006 Heute im Programmieren-Unterricht habe ich einen in meiner Klasse gesehen, der gerade phpMyAdmin offen hatte. Ich bin bei ihm dann mal auf Tabelle erstellen gegangen und da gab es dann noch die Felder: Kommentare, MIME-Type, Datentypumwandlung. Er hatte phpMyAdmin 2.7.0, wie ich auch. Vllt. liegt es auch am Versionsunterschied rc1 und final, aber das glaube ich weniger, da es ein recht grosser Unterschied wäre, zudem werden bei rc-Versionen kaum noch Sachen geändert. Nun bleibt weiterhin die Frage, wie man das reinbekommt. Nebenbei ist mir nun auch mal aufgefallen, dass es schon die Version 2.8.x gibt. Vllt. besorg ich mir die mal und teste es dabei. Oder liegt es an XAMPP? Das haben viele aus meiner Klasse. Ich dagegen beschaffe mir alle Komponenten seperat. Ich weiss ja nicht wie es bei euch ist. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.