2012-05-30 55 views

Respuesta

7

vainilla PHP:

<select> 
<? 
    $result = mysql_query('SHOW COLUMNS FROM '.$table_name.' WHERE field="'.$column_name.'"'); 
    while ($row = mysql_fetch_row($result)) { 
      foreach(explode("','",substr($row[1],6,-2)) as $option) { 
       print("<option>$option</option>"); 
      } 
     } 
?> 
<select> 

PHP Data Objects aplicación

<select> 
<? 
    $sql = 'SHOW COLUMNS FROM '.$table_name.' WHERE field="'.$column_name.'"'; 
    $row = $db->query($sql)->fetch(PDO::FETCH_ASSOC); 
    foreach(explode("','",substr($row['Type'],6,-2)) as $option) { 
      print("<option>$option</option>"); 
     } 
?> 
</select> 
+0

Es perfectamente aceptable para contestar propia pregunta: http: //meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions – WojtekT

+2

@kotekzot: mi error. :) – eggyal

4

Aquí hay otra solución que puede utilizar como una función de ayuda siempre que lo desee para obtener los valores de enumeración en una matriz para su uso como necesario.

public static function getSQLEnumArray($table, $field, $db){ 
    $row = $db->query("SHOW COLUMNS FROM ".$table." LIKE ".$field)->fetch(PDO::FETCH_ASSOC); 
    preg_match_all("/'(.*?)'/", $row['Type'], $categories); 
    $fields = $categories[1]; 
    return $fields; 
} 
+0

¡Gran función! Pero necesito cotizaciones alrededor de $ field: $ row = $ db-> query ("SHOW COLUMNS FROM". $ Table. "LIKE '". $ Campo. "') -> fetch (PDO :: FETCH_ASSOC); –

Cuestiones relacionadas