phpbar.de logo

Mailinglisten-Archive

[php] mysql enum informationen auslesen

[php] mysql enum informationen auslesen

Michel Thomas php_(at)_phpcenter.de
Mon, 9 Jul 2001 09:58:56 +0200


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