Critical Error: ".mysql_error()); @mysql_select_db($db_name) or die("Critical Error: ".mysql_error()); ######################### ## DB-Handling ## Administration ## NetWelt IC - 2004 ## ab V 2.21 ## update 14.06.2005 ## add: returnCounter(); ######################### class DB { function DB() { // Verbindungssettings $db_server = "localhost"; $db_user = "web2"; $db_pw = "04distanz00"; $db_name = "usr_web2_1"; $this->db_name = $db_name; // Verbindungsaufbau @mysql_connect($db_server, $db_user, $db_pw) or $this->message_die("get connection", 'could not connect to db-server', __LINE__, __FILE__); @mysql_select_db($db_name) or $this->message_die("select database", 'could not select db', __LINE__, __FILE__); $this->counter = 0; $this->startTime = microtime(); } function get_max_id($table) { $this->counter++; $sql = "select max(id) as maximum from ".$table; $id = $this->get_specific($sql, 'could not obtain maximum id from '.$table, __LINE__, __FILE__); $new = $id['maximum'] + 1; return $new; } function get_max_sortorder($table) { $this->counter++; $sql = "select max(sortorder) as maximum from ".$table; $sort = $this->get_specific($sql, 'could not obtain maximum sortorder from '.$table, __LINE__, __FILE__); $new = $sort['maximum'] + 1; return $new; } function get_max_specialsort($table, $column, $value) { $this->counter++; $sql = "SELECT MAX(sortorder) AS maximum FROM ".$table." WHERE ".$column." = ".$value; $sort = $this->get_specific($sql, 'could not obtain max.sortorder from '.$table, __LINE__, __FILE__); $new = $sort['maximum'] + 1; return $new; } function sql_query($sql, $message, $line, $file) { $this->counter++; $query = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); return; } function get_data_array($sql, $message, $line, $file) { $this->counter++; $statement = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); while ($data_row = mysql_fetch_assoc($statement)) { $data[] = $data_row; } mysql_free_result($statement); $this->statement_hits = sizeof($data); return $data; } function get_data($sql, $message, $line, $file) { $this->counter++; $statement = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); $this->statement_hits = mysql_num_rows($statement); return $statement; } function get_specific($sql, $message, $line, $file) { $this->counter++; $statement = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); $data = mysql_fetch_array($statement); mysql_free_result($statement); return $data; } function hits() { $hits = $this->statement_hits; return $hits; } function count($table, $field, $line, $file) { $this->counter++; $message = "could not count ".$field." from ".$table; $sql = "select COUNT(".$field.") as datahits from ".$table; $statement = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); $hits = mysql_result($statement, 0); mysql_free_result($statement); return $hits; } function count_specific($sql, $line, $file) { $this->counter++; $message = "could not count specific data"; $statement = mysql_query($sql) or $this->message_die($sql, $message, $line, $file); $hits = mysql_result($statement, 0); mysql_free_result($statement); return $hits; } function optimize($table_arr) { if (is_array($table_arr)) { $tables = ''; for ($i = 0; $i < sizeof($table_arr); $i++) { $tables .= $i == 0 ? "`$table_arr[$i]`" : ", `$table_arr[$i]`"; } } else { $tables = $table_arr; } $sql = "OPTIMIZE TABLE $tables"; $statement = mysql_query($sql) or $this->message_die($sql, 'could not optimize table '.$tables, __LINE__, __FILE__); return; } function set_locations($location_array) { if (!is_array($location_array)) { $this->message_die('', 'Der übergebene Parameter ist kein Array!', __LINE__, __FILE__); } foreach($location_array as $key => $element) { $$key = $element; } if (!isset($location)) { $this->message_die('', 'Der Parameter location wurde nicht gesetzt', __LINE__, __FILE__); } if (!isset($message)) { $this->message_die('', 'Der Parameter message wurde nicht gesetzt', __LINE__, __FILE__); } $this->location = $location; $this->message = $message; return; } function decide($field_array) { global $template; if (!is_array($field_array)) { $this->message_die('', 'Der übergebene Parameter ist kein Array!', __LINE__, __FILE__); } foreach($field_array as $key => $element) { $hidden_field[] = ''; } $template->set_filenames(array( 'choose' => 'error_choose.tpl') ); $template->assign_vars(array( 'F_ACTION' => $this->location, 'MESSAGE' => $this->message) ); for ($i = 0; $i < sizeof($hidden_field); $i++) { $template->assign_block_vars("hidden",array( 'INPUT' => $hidden_field[$i]) ); } $template->pparse('choose'); exit; } function return_database() { return $this->db_name; } function returnCounter() { $time = microtime() - $this->startTime; echo '
'.$this->counter . ' || '.$time.'
'; return; } function message_die($query, $message, $line, $file) { global $image; echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
 Folgender Fehler ist aufgetreten
 
Meldung"; echo $message."  
MySQL-Fehler"; echo mysql_error()."  
Fehler in Datei"; echo $file."  
Fehler in Zeile"; echo $line."  
Abfrage"; echo ""; echo "
 ".nl2br($query)."

"; echo "".$image['tech']."
"; exit; } } ?>root = "./template/"; } function destroy() { $this->_tpldata = array(); } function set_filenames($filename_array) { if (!is_array($filename_array)) { return false; } reset($filename_array); while(list($handle, $filename) = each($filename_array)) { $this->files[$handle] = $this->make_filename($filename); } return true; } function pparse($handle) { if (!$this->loadfile($handle)) { die("Template->pparse(): Couldn't load template file for handle $handle"); } if (!isset($this->compiled_code[$handle]) || empty($this->compiled_code[$handle])) { $this->compiled_code[$handle] = $this->compile($this->uncompiled_code[$handle]); } eval($this->compiled_code[$handle]); return true; } function assign_var_from_handle($varname, $handle) { if (!$this->loadfile($handle)) { die("Template->assign_var_from_handle(): Couldn't load template file for handle $handle"); } $_str = ""; $code = $this->compile($this->uncompiled_code[$handle], true, '_str'); eval($code); $this->assign_var($varname, $_str); return true; } function assign_block_vars($blockname, $vararray) { if (strstr($blockname, '.')) { $blocks = explode('.', $blockname); $blockcount = sizeof($blocks) - 1; $str = '$this->_tpldata'; for ($i = 0; $i < $blockcount; $i++) { $str .= '[\'' . $blocks[$i] . '.\']'; eval('$lastiteration = sizeof(' . $str . ') - 1;'); $str .= '[' . $lastiteration . ']'; } $str .= '[\'' . $blocks[$blockcount] . '.\'][] = $vararray;'; eval($str); } else { $this->_tpldata[$blockname . '.'][] = $vararray; } return true; } function assign_vars($vararray) { reset ($vararray); while (list($key, $val) = each($vararray)) { $this->_tpldata['.'][0][$key] = $val; } return true; } function assign_var($varname, $varval) { $this->_tpldata['.'][0][$varname] = $varval; return true; } function make_filename($filename) { if (substr($filename, 0, 1) != '/') { $filename = $this->root . '/' . $filename; } if (!file_exists($filename)) { die("Template->make_filename(): Error - file $filename does not exist"); } return $filename; } function loadfile($handle) { if (isset($this->uncompiled_code[$handle]) && !empty($this->uncompiled_code[$handle])) { return true; } if (!isset($this->files[$handle])) { die("Template->loadfile(): No file specified for handle $handle"); } $filename = $this->files[$handle]; $str = implode("", @file($filename)); if (empty($str)) { die("Template->loadfile(): File $filename for handle $handle is empty"); } $this->uncompiled_code[$handle] = $str; return true; } function compile($code, $do_not_echo = false, $retvar = '') { $code = str_replace('\\', '\\\\', $code); $code = str_replace('\'', '\\\'', $code); $varrefs = array(); preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs); $varcount = sizeof($varrefs[1]); for ($i = 0; $i < $varcount; $i++) { $namespace = $varrefs[1][$i]; $varname = $varrefs[3][$i]; $new = $this->generate_block_varref($namespace, $varname); $code = str_replace($varrefs[0][$i], $new, $code); } $code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '\' . ( ( isset($this->_tpldata[\'.\'][0][\'\1\']) ) ? $this->_tpldata[\'.\'][0][\'\1\'] : \'\' ) . \'', $code); $code_lines = explode("\n", $code); $block_nesting_level = 0; $block_names = array(); $block_names[0] = "."; $line_count = sizeof($code_lines); for ($i = 0; $i < $line_count; $i++) { $code_lines[$i] = chop($code_lines[$i]); if (preg_match('##', $code_lines[$i], $m)) { $n[0] = $m[0]; $n[1] = $m[1]; if ( preg_match('##', $code_lines[$i], $n) ) { $block_nesting_level++; $block_names[$block_nesting_level] = $m[1]; if ($block_nesting_level < 2) { $code_lines[$i] = '$_' . $n[1] . '_count = ( isset($this->_tpldata[\'' . $n[1] . '.\']) ) ? sizeof($this->_tpldata[\'' . $n[1] . '.\']) : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } else { $namespace = implode('.', $block_names); $namespace = substr($namespace, 2); $varref = $this->generate_block_data_ref($namespace, false); $code_lines[$i] = '$_' . $n[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } unset($block_names[$block_nesting_level]); $block_nesting_level--; $code_lines[$i] .= '} // END ' . $n[1]; $m[0] = $n[0]; $m[1] = $n[1]; } else { $block_nesting_level++; $block_names[$block_nesting_level] = $m[1]; if ($block_nesting_level < 2) { $code_lines[$i] = '$_' . $m[1] . '_count = ( isset($this->_tpldata[\'' . $m[1] . '.\']) ) ? sizeof($this->_tpldata[\'' . $m[1] . '.\']) : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $m[1] . '_i = 0; $_' . $m[1] . '_i < $_' . $m[1] . '_count; $_' . $m[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } else { $namespace = implode('.', $block_names); $namespace = substr($namespace, 2); $varref = $this->generate_block_data_ref($namespace, false); $code_lines[$i] = '$_' . $m[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;'; $code_lines[$i] .= "\n" . 'for ($_' . $m[1] . '_i = 0; $_' . $m[1] . '_i < $_' . $m[1] . '_count; $_' . $m[1] . '_i++)'; $code_lines[$i] .= "\n" . '{'; } } } else if (preg_match('##', $code_lines[$i], $m)) { unset($block_names[$block_nesting_level]); $block_nesting_level--; $code_lines[$i] = '} // END ' . $m[1]; } else { if (!$do_not_echo) { $code_lines[$i] = 'echo \'' . $code_lines[$i] . '\' . "\\n";'; } else { $code_lines[$i] = '$' . $retvar . '.= \'' . $code_lines[$i] . '\' . "\\n";'; } } } $code = implode("\n", $code_lines); return $code ; } function generate_block_varref($namespace, $varname) { $namespace = substr($namespace, 0, strlen($namespace) - 1); $varref = $this->generate_block_data_ref($namespace, true); $varref .= '[\'' . $varname . '\']'; $varref = '\' . ( ( isset(' . $varref . ') ) ? ' . $varref . ' : \'\' ) . \''; return $varref; } function generate_block_data_ref($blockname, $include_last_iterator) { $blocks = explode(".", $blockname); $blockcount = sizeof($blocks) - 1; $varref = '$this->_tpldata'; for ($i = 0; $i < $blockcount; $i++) { $varref .= '[\'' . $blocks[$i] . '.\'][$_' . $blocks[$i] . '_i]'; } $varref .= '[\'' . $blocks[$blockcount] . '.\']'; if ($include_last_iterator) { $varref .= '[$_' . $blocks[$blockcount] . '_i]'; } return $varref; } } ?>