Mailinglisten-Archive |
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