define (Q, "'");
echo "\n<pre>\n" ;
echo "\n</pre>\n" ;
function fieldnames( $metas )
foreach ($metas as $val)
$s .= $s ? ',' : ;
$s .= $val -> name ;
return $s ;
function fieldkeys( $table )
$sql = "select * from {$table} where 0 <> 0" ;
$status = mysql_free_result( $res ) ;
foreach ($fieldmetas as $name => $meta)
if ( $meta -> primary_key ) $keys[$name] = $meta ;
return $keys ;
function fieldkeysvalues( $keys, $keyvalues )
foreach ( $keys as $name => $meta )
$s .= $s ? ' and ' : ;
$s .= $name . "=" . $keyvalues[$name] ;
return $s ;
function table2form( $table, $keys, $values, $showdatas = false )
$sql = "select " .
" * " .
" from " .
$table .
" where " .
fieldkeysvalues( $keys , $values ) ;
foreach ($fieldmetas as $name => $meta)
$fprim = $meta -> primary_key ;
$fincl = $fprim || $showdatas ; include if primary or $showdatas
$fhide = $fprim && $showdatas ; hide if primary and $showdatas
if ($fincl)
$ffname = ' name=' . qq( $name ) ;
if (!$fhide)
$s .= $name . "\n<br />\n" ;
$fftype = ' type=' . qq( 'text' ) ;
$ffreadonly = ;
else
$fftype = ' type=' . qq( 'hidden' ) ;
$ffreadonly = ' readonly=' . qq('true') ;
$val = $data[$name] ;
switch ( $meta -> type )
$s .= $ffname ;
$s .= $fftype ;
$s .= $ffreadonly ;
$s .= ' size=' . qq(4) ;
$s .= ' maxlength =' . qq(4) ;
$s .= ' value=' . qq($val) ;
$s .= ' />' ;
$s .= $ffname ;
$s .= $fftype ;
$s .= $ffreadonly ;
$s .= ' size=' . qq(40) ;
$s .= ' maxlength=' . qq(100) ;
$s .= ' value=' . qq($val) ;
$s .= $ffname ;
$s .= ' rows=' . qq(15) ;
$s .= ' cols=' . qq(80) ;
$s .= ' class=' . qq(mceEditor) ;
$s .= '>' ;
return $s ;
function fieldkeyvalue( $sofar, $sep, $meta, $value )
if ($sofar) $s = $sep . "\n" ;
$name = $meta -> name ;
switch ( $meta -> type )
case 'int' :
$s .= $name . '=' . ( $value ? $value : 'null' ) ;
break;
case 'string' :
$s .= $name . '=' . qq($value) ;
break;
case 'blob' :
$s .= $name . '=' . qq($value) ;
break;
default:
break;
return $s ;
function post2update( $table , $datavalues )
$sql = "select * from $table where 0 <> 0" ;
$status = mysql_free_result( $res ) ;
foreach ( $fieldmetas as $name => $meta )
$fvalu = $datavalues[$name] ;
if ( $meta -> primary_key )
$keycols .= fieldkeyvalue( $keycols , ' and ' , $meta, $fvalu ) ;
else
$datacols .= fieldkeyvalue( $datacols , ' , ' , $meta, $fvalu ) ;
$sql = "update\n$table\nset\n$datacols\nwhere\n$keycols" ;