// ************************************************************************************************************************** // ************************************** LIST TABLES FUNCTION ******************************************************* // ************************************************************************************************************************** function choose_table(){ ///////////// CONNECT TO THE DATABASE ///////////// include('connect.php'); db(0); ///////////// CONNECT TO THE DATABASE ///////////// ?>
}//function // ************************************************************************************************************************** // ************************************** LIST COLUMNS FUNCTION ****************************************************** // ************************************************************************************************************************** function make_form($t, $formdata, $reddata) { ///////////// CONNECT TO THE DATABASE ///////////// include('connect.php'); db(0); $database="travmgmt"; ///////////// CONNECT TO THE DATABASE ///////////// ?> } //function // ************************************************************************************************************************** // ************************************** INSERT TO TABLE FUNCTION *************************************************** // ************************************************************************************************************************** function post_to_table($t, $formdata){ ///////////// CONNECT TO THE DATABASE ///////////// include('connect.php'); db(0); ///////////// CONNECT TO THE DATABASE ///////////// $database="travmgmt"; $TABLE_result = mysql_list_tables($database); $j = 1; while ($row = mysql_fetch_row($TABLE_result)) { $table[$j] = $row[0]; $j++; } // while $DESCRIBE_result = mysql_query("DESCRIBE ".$table[$t]); $count = mysql_num_rows($DESCRIBE_result); $counter = 1; $insert_query = "INSERT INTO `".$database."`.`".$table[$t]."` ( `"; $values = " VALUES ( '"; while ($row = mysql_fetch_array($DESCRIBE_result)){ $current_field[$counter] = $row['Field']; $english_field[$counter] = ucwords(str_replace("_", " ", $current_field)); # row is mysql type, in format "int(11) unsigned zerofill" # or "enum('cheese','salmon')" etc. ereg('^([^ (]+)(\((.+)\))?([ ](.+))?$',$row['Type'],$fieldTypeSplit[$counter]); # split type up into array $fieldFlags = $fieldTypeSplit[$counter][5]; # eg 'binary' or 'unsigned zerofill'. $fieldLen = $fieldTypeSplit[$counter][3]; # eg 11, or 'cheese','salmon' for enum. $fieldType = $fieldTypeSplit[$counter][1]; # eg 'int' for integer. $current_eval_field = $current_field[$counter]; //concatenate a valid DATE value from the (month day year) form data if ($fieldType == 'date') $formdata[$current_eval_field] = $formdata["yyyy_".$current_eval_field].$formdata["mm_".$current_eval_field].$formdata["dd_".$current_eval_field]; ////START VALIDATION RULES/// // If any of the validation rules below are triggered, $reddata is changed into an array with a value of '1' assigned to the // keys related to the triggering fields. This is used by make_form($t, $formdata, $reddata) to flag errors on a 'correction' // page. The current function will call make_form($t, $formdata, $reddata) without going through the tests in describe.php // in the event that one or more of the validation tests are triggered. // DATE validation if ( $fieldType == "date" && ( !preg_match("/^(19|20)\d{2}(0|1)\d{1}[0-3]\d{1}$/", $formdata[$current_eval_field]) //allows valid dates from 1900-2099 only ) || ( preg_match("/1|3|5|7|8|10|12/", $formdata["mm_".$current_eval_field]) && $formdata["dd_".$current_eval_field] > 31 ) || ( preg_match("/4|6|9|11/", $formdata["mm_".$current_eval_field]) && $formdata["dd_".$current_eval_field] > 30 ) || ( $formdata["mm_".$current_eval_field] == '02' && is_int($formdata["yyyy_".$current_eval_field]/4) && $formdata["dd_".$current_eval_field] > 29 ) || ( $formdata["mm_".$current_eval_field] == '02' && !is_int($formdata["yyyy_".$current_eval_field]/4) && $formdata["dd_".$current_eval_field] > 28 ) ) $reddata[$counter] = 1; // ENUM & SET validation if ($fieldType=='enum' or $fieldType=='set'){ $fieldOptions = split("','",substr($fieldLen,1,-1)); if (!in_array($formdata[$current_eval_field], $fieldOptions)) $reddata[$counter] = 1; } // if $counter++; } //while // START VALIDATION RESULT if (is_array($reddata)) { make_form($t, $formdata, $reddata); return; } //if //INSERT to table and output to html if validation rules are good $newcounter = 1; while ($newcounter <= $count){ $current_insert_field = $current_field[$newcounter]; if ($current_insert_field == "timestamp") { $newcounter++; echo $newcounter."