phpbar.de logo

Mailinglisten-Archive

[php] Enum-Werte

[php] Enum-Werte

Daniel Strathemeier php_(at)_phpcenter.de
Thu, 7 Jun 2001 13:57:41 +0200


Hy Martin,

> hat jemand von euch einen Lösungsvorschlag, wie
> man am geschicktesten enum-Werte aus einer
> Datenbank in ein Drop-Down Feld bringen kann?
> Hab mir die Lösung bei phpmyadmin angeschaut und
> hab sie nicht so geblickt.
> Danke für die Hilfe.

ich hab mir letztens mal eine function gebastelt die alle werte von
einer mysql tabelle in einem array ablegt.

function mysql_get_table_struct($table_name_input)
{
 $arr_table_name = array();
 if(is_array($table_name_input))
 {
  $arr_table_name = $table_name_input;
 }
 elseif(is_string($table_name_input))
 {
  $arr_table_name[] = $table_name_input;
 }

 foreach($arr_table_name AS $table_name)
 {
  $query = "SHOW FIELDS FROM ".$table_name;
  $result = mysql_query($query);
 // echo $query."<br>";
  $mysql_table[$table_name] = array();
  $arr_mysql_table = array();

  while($row = mysql_fetch_assoc($result))
  {
   $arr_mysql = array();
   $arr_mysql["Field"] = $row["Field"];
   $arr_type = preg_split("/[(?'^,)]+/",$row["Type"]);
   $arr_mysql["Type"] = array_shift($arr_type);
   if($arr_mysql["Type"] == "enum" || $arr_mysql["Type"] == "set" )
   {
    $arr_enum_values = array();
    foreach($arr_type AS $type)
    {
     if(isset($type) && !empty($type))
     {
      $arr_enum_values[] = $type;
     }
    }
    $arr_mysql["Values"] = $arr_enum_values;
   }
   else
   {
    if(isset($arr_type[0]) && !empty($arr_type[0]))
    {
     $arr_mysql["Values"] = $arr_type[0];
    }
    if(isset($arr_type[1]) && !empty($arr_type[1]))
    {
     $arr_mysql["Attributes"] = $arr_type[1];
    }
   }
   $arr_mysql["Null"] = $row["Null"];
   $arr_mysql["Key"] = $row["Key"];
   $arr_mysql["Default"] = $row["Default"];
   $arr_mysql["Extra"] = $row["Extra"];
   $arr_mysql_table[] = $arr_mysql;
  }
  $mysql_table[$table_name] = $arr_mysql_table;
 }
 mysql_free_result($result);
 return $mysql_table;
}


versuch dann mal:

$arr_tabellen = array("tabellenname");
print_r(mysql_get_table_struct($arr_tabellen));

greets
/dany



php::bar PHP Wiki   -   Listenarchive