Mailinglisten-Archive |
Hallo
>ich will die optionen in einem mysql-enum feld als html-auswahlliste
darstellen (wie in=20
>phpMyAdmin).
>kann ich die enum-informationen mit einem php-befehl rauslesen oder
brauche ich dazu ein=20
>spezielles sql-query?
f=FCr das habe ich mal einige Funktion geschrieben (ist ziemlich
praktisch)
function setenumanzeigen($tabelle,$zelle)=20
{
// tabellenname,$zelle mit den enum oder set wert muss hier angegeben
werden (nur auslesen)
$res =3D mysql_query("SHOW COLUMNS FROM $tabelle LIKE '$zelle'");
$row =3D mysql_fetch_array($res);
$type=3Dstrtok($row["Type"],"(");
if($type=3D=3D"enum")
{
$set =3D str_replace("enum(", "", $row["Type"]);
}
else
{
$set =3D str_replace("set(", "", $row["Type"]);
}
$set =3D ereg_replace("\\)$", "", $set);
$set =3D str_replace("'","",$set);
$set =3D explode(",",$set);
if($type=3D=3D"enum")
{
echo "<select size=3D\"1\" name=3D\"".$zelle."\">\n";
echo "<option selected value=3D\"kein\">--- Bitte w=E4hlen
---</option>";
for($a=3D0;$a<count($set);$a++)
{
echo "<option>".$set[$a]."</option>\n";
}
}
else
{
echo "<select size=3D\"";
if(count($set)<5)
{
echo count($set);
}
else
{
echo "5";
}
echo"\" name=3D\"".$zelle."[]\" multiple>\n";
echo "<option selected value=3D\"kein\">--- Bitte w=E4hlen
---</option>";
for($a=3D0;$a<count($set);$a++)
{
echo "<option>".$set[$a]."</option>\n";
}
}
echo "</select>\n";
}
function setenum($tabelle,$zelle,$werte)
{
//$tabelle mit der zelle, wert mit dem verlichen werden soll dieser wird
dann automatisch //ausgew=E4hlt
$res =3D mysql_query("SHOW COLUMNS FROM $tabelle LIKE '$zelle'");
$row =3D mysql_fetch_array($res);
$type=3Dstrtok($row["Type"],"(");
if($type=3D=3D"enum")
{
$set =3D str_replace("enum(", "", $row["Type"]);
}
else
{
$set =3D str_replace("set(", "", $row["Type"]);
}
$set =3D ereg_replace("\\)$", "", $set);
$set =3D str_replace("'","",$set);
$set =3D explode(",",$set);
if($type=3D=3D"enum")
{
echo "<select size=3D\"1\" name=3D\"".$zelle."\">\n";
for($a=3D0;$a<count($set);$a++)
{
if($werte=3D=3D$set[$a])
{
echo "<option selected>".$set[$a]."</option>\n";
}
else
{
echo "<option>".$set[$a]."</option>\n";
}
}
}
else
{
echo "<select size=3D\"";
if(count($set)<5)
{
echo count($set);
}
else
{
echo "5";
}
echo"\" name=3D\"".$zelle."[]\" multiple>\n";
$werte=3Dexplode (",",$werte);
for($a=3D0;$a<count($set);$a++)
{
if(in_array($set[$a],$werte)=3D=3Dtrue)
{
echo "<option selected>".$set[$a]."</option>\n";
}
else
{
echo "<option>".$set[$a]."</option>\n";
}
}
}
echo "</select>\n";
}
mfG
Thomas Michel
php::bar PHP Wiki - Listenarchive