Auslesen mögl. Werte in ENUM |SET Feldern

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Auslesen mögl. Werte in ENUM |SET Feldern

Postby juergen&lx » 09. September 2004 04:06

Moin,

Ich möchte die möglichen Werte eines Feldes mit ENUM |SET aus lesen und in einem Array speichern. Aber das Auslesen der Werte scheitert schon.

Bei http://dev.mysql.com/doc/mysql/de/SET.html heißt es zum Beispiel:
Wenn Sie alle möglichen Werte einer SET-Spalte erhalten wollen, benutzen Sie: SHOW COLUMNS FROM tabelle LIKE set_spalte und gehen die SET-Definition in der zweiten Spalte durch.

Also in PhpmyAdmin/SQL:
Code: Select all
SHOW COLUMNS FROM titel LIKE `folie`
und Fehlermeldung
Fehler

SQL-Befehl :

SHOW COLUMNS FROM titel LIKE `folie`

MySQL meldet:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'folie`' at line 1

Habe ich irgendwas übersehen, nicht verstanden(Dummy) oder ist es nur ein dummer Käfer(bug)??

Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux

Postby tapferesschneiderlein » 11. September 2004 10:23

Als Workaround:
Code: Select all
<?php
$r = mysql_query('SHOW COLUMNS FROM titel LIKE "folie"');
$array = mysql_fetch_array($r, MYSQL_NUM);
eval('$set = ' . preg_replace('#^set#i', 'array', $array[1]) . ';');
?>
Die Alternativen sind im Array $set.
tapferesschneiderlein
 
Posts: 3
Joined: 01. August 2004 12:48

Postby juergen&lx » 13. September 2004 19:55

Hallo tapferesschneiderlein,

dein Code hat nicht funktioniert, ich weiß aber noch nicht warum.
Vielleicht hat Wiedmann eine :idea: :?:
Zwischenzeitlich habe ich folgendes probiert, und es tuut: :D
Code: Select all
$result=mysql_query($query);
if(mysql_num_rows($result)>0){
$row=mysql_fetch_row($result);
$options=explode("','",preg_replace("/(enum|set)\('(.+?)'\)/","\\2",$row[1]));
}

ist übrigens aus o.g.Quelle. Ich hatte auch überlesen, das die Type ein Array ist.
In 'preg_replace' ist bei '(enum|set)' eins von zweien auszuwählen.

Danke für die Hilfe
Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux

Postby fbi » 03. November 2004 04:04

Hi,

versuchts mal damit:

Code: Select all
SHOW COLUMNS FROM titel LIKE 'folie'


CU FBI

PS: man beachte die Anführungsstriche :wink:
fbi
 
Posts: 1
Joined: 03. November 2004 03:55

Postby juergen&lx » 03. November 2004 16:08

Hi fbi,

Danke für deine Antwort, abert das Problem ist keines mehr :)

Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest