00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 class DiogenesDatabaseTable {
00029 var $dbh;
00031 var $table;
00033 var $vars = array();
00034
00040 function DiogenesDatabaseTable(&$dbh,$table)
00041 {
00042 $this->dbh =& $dbh;
00043 $this->table = $table;
00044
00045 $res = $this->dbh->query("show columns from $table");
00046 while (list($name,$ftype,,$key,$value,$extra) = mysql_fetch_row($res))
00047 {
00048 if (!preg_match("/^([a-z]+)(\(([^\)]*)\))?( [a-z]+)?$/",$ftype,$matches))
00049 die("could not parse $ftype");
00050
00051 $dtype = $matches[1];
00052 switch($dtype) {
00053 case "set": case "enum":
00054 $type = "set";
00055 break;
00056 case "timestamp":
00057 case "datetime":
00058 $type = "timestamp";
00059 break;
00060 default:
00061 $type="text";
00062 }
00063 $this->vars[$name] = array("table" => $this->table, "field" => $name,
00064 "type" => $type, "value" => $value, "desc" => $name, "sum" => false,
00065 "key" => $key, "extra" => $extra, "edit" => true, "show" => true);
00066 }
00067 mysql_free_result($res);
00068 }
00069
00070 }
00071
00072 ?>