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