phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] ENUM - Werte auslesen

[php] AW: [php] ENUM - Werte auslesen

Wolfgang wbh_(at)_euta.net
Wed, 28 Jun 2000 12:47:26 +0200


Tobias wrote:

wie kann man bei einem ENUM Feld die Werte die moglich sind in PHP auslesen ?
Ich Denke da eine eine HTML-Selectbox, komme aber leider ueberhaupt nicht an
die Werte ran.

Hi Tobias:
Hier ein 'Rohcode' den ich aus einer selbstdefinierten Klasse ausgeschnitten 
habe:
Als Orginalcode funzt das, aber so ausgeschnitten hab ich ihn noch nicht 
getestet.
in $ftype["Name_des_Feldes"] steht enum, set oder check (fuer Y,N),
in $enum["Name_des_Feldes"][Nr] steht der String,
in $enum["Name_des_Feldes"]["value"][Nr] steht der Wert,
fuer $set gilt entsprechendes.
Es werden alle Felder der Tabelle geprueft. Wenn du nur ein Feld auslesen 
willst,
musst du den Code entsprechend eindampfen (while raus set - Pruefung raus 
e.t.c)

Hier der Code:

<-------schnipp

   $table = "deine_Tabelle";
   $link = mysql_pconnect($Host, $User, $Password);
   $result = mysql_query("SHOW FIELDS FROM ".$table,$link);
   if ($result) {
    while ($row= mysql_fetch_array($result)) {
     if(is_int(strpos($row["Type"],"enum")))
     {
      $tok = substr($row["Type"],strpos($row["Type"],"'")+1);
      $tok = substr($tok,0,strlen($tok)-1);
      $tok = strtok($tok,"'");
      if (is_int(strpos($row["Type"],"N','Y'"))) {
       $ftype[$row["Field"]] = "check";
      }
      else
      {
       $ftype[$row["Field"]] = "enum";
       $i = 0;
       while($tok or $tok == "0") {
        if ($tok <> ",") {
         $enum[$row["Field"]][$i] = $tok;
         $enum[$row["Field"]]["value"][$i] = $i + 1;
         $i++;
        }
        $tok = strtok("'");
       }
      }
     }
     else
     if(is_int(strpos($row["Type"],"set")))
     {
      $ftype[$row["Field"]] = "set";
      $tok = substr($row["Type"],strpos($row["Type"],"'")+1);
      $tok = substr($tok,0,strlen($rest)-1);
      $tok = strtok($tok,"'");
      $i = 0;
      while($tok) {
       if ($tok <> ",") {
        $set[$row["Field"]][$i] = $tok;
        $set[$row["Field"]]["value"][$i] = pow(2, $i);
        $i++;
       }
       $tok = strtok("'");
      }
     }
    }
   }


--------> schnipp

Gruss Wolfgang




php::bar PHP Wiki   -   Listenarchive