2007-07-02 05:51:26 +00:00
< ? php
2007-07-09 06:12:22 +00:00
$where = where ();
$fields = array ();
foreach ( fields ( $_GET [ " edit " ]) as $name => $field ) {
if ( isset ( $_GET [ " default " ]) ? ! $field [ " auto_increment " ] : isset ( $field [ " privileges " ][ $where ? " update " : " insert " ])) {
$fields [ $name ] = $field ;
}
2007-07-05 10:41:53 +00:00
}
2007-07-09 06:12:22 +00:00
if ( $_POST && ! $error ) {
2007-07-02 05:51:26 +00:00
if ( isset ( $_POST [ " delete " ])) {
2007-07-09 06:12:22 +00:00
$set = true ;
2007-07-02 05:51:26 +00:00
$query = " DELETE FROM " . idf_escape ( $_GET [ " edit " ]) . " WHERE " . implode ( " AND " , $where ) . " LIMIT 1 " ;
$message = lang ( 'Item has been deleted.' );
} else {
$set = array ();
2007-07-09 06:12:22 +00:00
foreach ( $fields as $name => $field ) {
2007-07-09 14:45:11 +00:00
$val = process_input ( $name , $field );
if ( $val !== false ) {
$set [] = idf_escape ( $name ) . ( isset ( $_GET [ " default " ]) ? ( $val == " NULL " ? " DROP DEFAULT " : " SET DEFAULT $val " ) : " = $val " );
2007-07-02 05:51:26 +00:00
}
}
2007-07-09 06:12:22 +00:00
if ( isset ( $_GET [ " default " ])) {
$query = " ALTER TABLE " . idf_escape ( $_GET [ " edit " ]) . " ALTER " . implode ( " , ALTER " , $set );
$message = lang ( 'Default values has been set.' );
} elseif ( $where ) {
2007-07-02 05:51:26 +00:00
$query = " UPDATE " . idf_escape ( $_GET [ " edit " ]) . " SET " . implode ( " , " , $set ) . " WHERE " . implode ( " AND " , $where ) . " LIMIT 1 " ;
$message = lang ( 'Item has been updated.' );
} else {
$query = " INSERT INTO " . idf_escape ( $_GET [ " edit " ]) . " SET " . implode ( " , " , $set );
$message = lang ( 'Item has been inserted.' );
}
}
2007-07-09 06:12:22 +00:00
if ( ! $set || mysql_query ( $query )) {
redirect ( $SELF . ( isset ( $_GET [ " default " ]) ? " table= " : ( $_POST [ " insert " ] ? " edit= " : " select= " )) . urlencode ( $_GET [ " edit " ]), ( $set ? $message : null ));
2007-07-02 05:51:26 +00:00
}
2007-07-02 16:42:42 +00:00
$error = mysql_error ();
2007-07-02 05:51:26 +00:00
}
2007-07-09 06:12:22 +00:00
page_header (( isset ( $_GET [ " default " ]) ? lang ( 'Default values' ) : ( $_GET [ " where " ] ? lang ( 'Edit' ) : lang ( 'Insert' ))) . " : " . htmlspecialchars ( $_GET [ " edit " ]));
2007-07-02 05:51:26 +00:00
if ( $_POST ) {
2007-07-02 16:42:42 +00:00
echo " <p class='error'> " . lang ( 'Error during saving' ) . " : " . htmlspecialchars ( $error ) . " </p> \n " ;
2007-07-09 06:12:22 +00:00
$data = ( array ) $_POST [ " fields " ];
foreach (( array ) $_POST [ " null " ] as $key => $val ) {
2007-07-02 05:51:26 +00:00
$data [ $key ] = null ;
}
} elseif ( $where ) {
2007-07-06 13:48:25 +00:00
$select = array ();
2007-07-02 05:51:26 +00:00
foreach ( $fields as $name => $field ) {
2007-07-09 06:12:22 +00:00
if ( isset ( $field [ " privileges " ][ " select " ]) && ! preg_match ( '~binary|blob~' , $field [ " type " ])) {
2007-07-06 13:48:25 +00:00
$select [] = ( $field [ " type " ] == " enum " || $field [ " type " ] == " set " ? " 1* " . idf_escape ( $name ) . " AS " : " " ) . idf_escape ( $name );
2007-07-02 05:51:26 +00:00
}
}
2007-07-06 13:48:25 +00:00
$data = ( $select ? mysql_fetch_assoc ( mysql_query ( " SELECT " . implode ( " , " , $select ) . " FROM " . idf_escape ( $_GET [ " edit " ]) . " WHERE " . implode ( " AND " , $where ) . " LIMIT 1 " )) : array ());
2007-07-02 05:51:26 +00:00
} else {
2007-07-09 06:12:22 +00:00
unset ( $data );
2007-07-02 05:51:26 +00:00
}
?>
2007-07-09 14:45:11 +00:00
2007-07-09 06:12:22 +00:00
< form action = " " method = " post " enctype = " multipart/form-data " >
2007-07-02 05:51:26 +00:00
< ? php
2007-07-09 14:45:11 +00:00
echo ( $fields ? " <table border='0' cellspacing='0' cellpadding='2'> \n " : " " );
2007-07-02 05:51:26 +00:00
foreach ( $fields as $name => $field ) {
2007-07-09 06:12:22 +00:00
echo " <tr><th> " . htmlspecialchars ( $name ) . " </th><td> " ;
2007-07-09 14:45:11 +00:00
if ( ! isset ( $data )) {
$value = $field [ " default " ];
} elseif ( strlen ( $data [ $name ]) && ( $field [ " type " ] == " enum " || $field [ " type " ] == " set " )) {
$value = intval ( $data [ $name ]);
} else {
$value = $data [ $name ];
2007-07-02 05:51:26 +00:00
}
2007-07-09 14:45:11 +00:00
input ( $name , $field , $value );
2007-07-09 06:12:22 +00:00
echo " </td></tr> \n " ;
2007-07-02 05:51:26 +00:00
}
2007-07-09 14:45:11 +00:00
echo ( $fields ? " </table> \n " : " " );
2007-07-02 05:51:26 +00:00
?>
2007-07-09 06:12:22 +00:00
< p >
< input type = " hidden " name = " token " value = " <?php echo $token ; ?> " />
2007-07-09 14:45:11 +00:00
< ? php if ( $fields ) { ?>
2007-07-09 06:12:22 +00:00
< input type = " submit " value = " <?php echo lang('Save'); ?> " />
< ? php if ( ! isset ( $_GET [ " default " ])) { ?> <input type="submit" name="insert" value="<?php echo lang('Save and insert'); ?>" /><?php } ?>
< ? php } ?>
< ? php if ( $where ) { ?> <input type="submit" name="delete" value="<?php echo lang('Delete'); ?>" /><?php } ?>
</ p >
2007-07-02 05:51:26 +00:00
</ form >