function quote_values($values) { $quoted_values = array(); foreach ($values as $value) { $quoted_values[] = quote_value($value); } return implode(", ", $quoted_values); }
} mysql_query($sqlalter, $con) or die(mysql_error()); mysql_query($sqlalterkey, $con) or die(mysql_error()); } } // The way session uploads work, there's a separate HTTP call for each datapoint. This is why raw logs is // so huge, and has so much repeating data. This is my attempt to flatten the redundant data into the // sessions table; this code checks if there is already a row for the current session, and if there is, only // update the ending time and the count of datapoints. If there isn't a row, insert one. $rawkeys = array_merge($keys, $sesskeys, $sessprofilekeys); $rawvalues = array_merge($values, $sessvalues, $sessprofilevalues); if (sizeof($rawkeys) === sizeof($rawvalues) && sizeof($rawkeys) > 0 && sizeof($sesskeys) === sizeof($sessvalues) && sizeof($sesskeys) > 0) { // Now insert the data for all the fields into the raw logs table $sql = "INSERT INTO {$db_table} (" . quote_names($rawkeys) . ") VALUES (" . quote_values($rawvalues) . ")"; //echo $sql; mysql_query($sql, $con) or die(mysql_error()); // See if there is already an entry in the sessions table for this session $sessionqry = mysql_query("SELECT session, sessionsize FROM {$db_sessions_table} WHERE session LIKE " . quote_value($sessuploadid), $con) or die(mysql_error()); $sesssizecount = 1; // If there's an entry in the session table for this session, update the session end time and the datapoint count while ($row = mysql_fetch_assoc($sessionqry)) { $sesssizecount = $row["sessionsize"] + 1; } $sessionqrystring = "INSERT INTO {$db_sessions_table} (" . quote_names($sesskeys) . ", timestart, sessionsize) VALUES (" . quote_values($sessvalues) . ", {$sesstime}, '1') ON DUPLICATE KEY UPDATE timeend='{$sesstime}', sessionsize='{$sesssizecount}'{$sessprofilequery}"; //echo $sessionqrystring; mysql_query($sessionqrystring, $con) or die(mysql_error()); } } mysql_close($con); // Return the response required by Torque echo "OK!";
function insert_row($table, $values) { global $dbConn, $dbResult; $sql = "INSERT INTO " . $table . " "; $columns = array(); $vals = array(); while (list($key, $data_description) = each($values)) { $type = $data_description['type']; $value = $data_description['value']; $value_sql = quote_value($type, $value); array_push($columns, $key); array_push($vals, $value_sql); } $sql .= "(" . implode(", ", $columns) . ") "; $sql .= " VALUES (" . implode(", ", $vals) . ")"; $dbResult = odbc_exec($dbConn, $sql); }
<?php //echo "<!-- Begin del_session.php at ".date("H:i:s", microtime(true))." -->\r\n"; // this page relies on being included from another page that has already connected to db if (!isset($_SESSION)) { session_start(); } if (isset($_POST["deletesession"])) { $deletesession = preg_replace('/\\D/', '', $_POST['deletesession']); } elseif (isset($_GET["deletesession"])) { $deletesession = preg_replace('/\\D/', '', $_GET['deletesession']); } if (isset($deletesession) && !empty($deletesession)) { $delresult = mysql_query("DELETE FROM {$db_table}\n WHERE session=" . quote_value($deletesession), $con) or die(mysql_error()); mysql_free_result($delresult); $delresult = mysql_query("DELETE FROM {$db_sessions_table}\n WHERE session=" . quote_value($deletesession), $con) or die(mysql_error()); mysql_free_result($delresult); } //echo "<!-- End del_session.php at ".date("H:i:s", microtime(true))." -->\r\n";
<?php require_once "./db.php"; if (isset($_GET["sid"])) { $session_id = $_GET['sid']; // Get data for session $output = ""; $sql = mysql_query("SELECT * FROM {$db_table} join {$db_sessions_table} on {$db_table}.session = {$db_sessions_table}.session WHERE {$db_table}.session=" . quote_value($session_id) . " ORDER BY {$db_table}.time DESC;") or die(mysql_error()); if ($_GET["filetype"] == "csv") { $columns_total = mysql_num_fields($sql); // Get The Field Name for ($i = 0; $i < $columns_total; $i++) { $heading = mysql_field_name($sql, $i); $output .= '"' . $heading . '",'; } $output .= "\n"; // Get Records from the table while ($row = mysql_fetch_array($sql)) { for ($i = 0; $i < $columns_total; $i++) { $output .= '"' . $row["{$i}"] . '",'; } $output .= "\n"; } mysql_free_result($sql); // Download the file $csvfilename = "torque_session_" . $session_id . ".csv"; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename=' . $csvfilename); echo $output; exit; } else {
$keyquery = mysql_query("SELECT id,description,units FROM {$db_name}.{$db_keys_table};") or die(mysql_error()); $keyarr = []; while ($row = mysql_fetch_assoc($keyquery)) { $keyarr[$row['id']] = array($row['description'], $row['units']); } // 2015.08.04 - edit by surfrock66 - Adding experimental support for unlimited vars, // while requiring no default PID $selectstring = "time"; $i = 1; while (isset($_GET["s{$i}"])) { ${'v' . $i} = $_GET["s{$i}"]; $selectstring = $selectstring . "," . quote_name(${'v' . $i}); $i = $i + 1; } // Get data for session $sessionqry = mysql_query("SELECT {$selectstring} FROM {$db_table} WHERE session=" . quote_value($session_id) . " ORDER BY time DESC;") or die(mysql_error()); while ($row = mysql_fetch_assoc($sessionqry)) { $i = 1; while (isset(${'v' . $i})) { if (substri_count($keyarr[${'v' . $i}][0], "Speed") > 0) { $x = intval($row[${'v' . $i}]) * $speed_factor; ${'v' . $i . '_measurand'} = $speed_measurand; } elseif (substri_count($keyarr[${'v' . $i}][0], "Temp") > 0) { $x = $temp_func(floatval($row[${'v' . $i}])); ${'v' . $i . '_measurand'} = $temp_measurand; } else { $x = intval($row[${'v' . $i}]); ${'v' . $i . '_measurand'} = ' (' . $keyarr[${'v' . $i}][1] . ')'; } ${'d' . $i}[] = array($row['time'], $x); ${'spark' . $i}[] = $x;
} $mergeqry = mysql_query($qrystr) or die(mysql_error()); $mergerow = mysql_fetch_assoc($mergeqry); $newsession = $mergerow['session']; $newtimestart = $mergerow['timestart']; $newtimeend = $mergerow['timeend']; $newsessionsize = $mergerow['sessionsize']; mysql_free_result($mergeqry); foreach ($sessionids as $value) { if ($value == $newsession) { $updatequery = "UPDATE {$db_sessions_table} SET timestart={$newtimestart}, timeend={$newtimeend}, sessionsize={$newsessionsize} where session={$newsession}"; mysql_query($updatequery, $con) or die(mysql_error()); } else { $delquery = "DELETE FROM {$db_sessions_table} WHERE session = '{$value}'"; mysql_query($delquery, $con) or die(mysql_error()); $updatequery = "UPDATE {$db_table} SET session={$newsession} WHERE session=" . quote_value($value); mysql_query($updatequery, $con) or die(mysql_error()); } } //Show merged session $session_id = $mergesession; header('Location: session.php?id=' . $mergesession); } elseif (isset($mergesession) && !empty($mergesession)) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Open Torque Viewer</title>
$val = strip_tags(trim($val)); //from the fieldname:id we need to get id $split_data = explode(':', $field_id); $id = $split_data[1]; $field_name = $split_data[0]; echo "\nField Name: '{$field_name}'\nField ID: '{$id}'\nValue: '{$val}'\n"; if (!empty($id) && !empty($field_name) && !empty($val)) { if ($field_name == 'populated') { if ($val == 'true') { $val = 1; } else { $val = 0; } } //update the values $query = "UPDATE {$db_name}.{$db_keys_table} SET " . quote_name($field_name) . " = " . quote_value($val) . " WHERE id = " . quote_value($id); echo "\n{$query}\n"; mysql_query($query) || die(mysql_error()); if ($field_name == 'type') { $query = "ALTER TABLE {$db_name}.{$db_table} MODIFY " . quote_name($id) . " " . mysql_real_escape_string($val) . " NOT NULL DEFAULT '0'"; echo $query; mysql_query($query) || die(mysql_error()); } echo "Updated"; } else { echo "Invalid Requests 1"; } } } else { echo "Invalid Requests 2"; }
$sessionqrystring = $sessionqrystring . "WHERE ( "; if ($filteryear != "%") { $sessionqrystring = $sessionqrystring . $sqlqryyear; $andselector = " AND "; } if ($filtermonth != "%") { $sessionqrystring = $sessionqrystring . $andselector . $sqlqrymonth; $andselector = " AND "; } if ($filterprofile != "%") { $sessionqrystring = $sessionqrystring . $andselector . $sqlqryprofile; } $sessionqrystring = $sessionqrystring . " ) "; } if (isset($_GET['id'])) { $sessionqrystring = $sessionqrystring . $orselector . "( session LIKE " . quote_value($_GET['id']) . " )"; } $sessionqrystring = $sessionqrystring . " GROUP BY session, profileName, timestart, timeend, sessionsize ORDER BY session DESC"; // Get list of unique session IDs $sessionqry = mysql_query($sessionqrystring, $con) or die(mysql_error()); // Create an array mapping session IDs to date strings $seshdates = array(); $seshsizes = array(); $seshprofile = array(); while ($row = mysql_fetch_assoc($sessionqry)) { $session_duration_str = gmdate("H:i:s", ($row["timeend"] - $row["timestart"]) / 1000); $session_profileName = $row["profileName"]; // Drop sessions smaller than 60 data points //if ($row["sessionsize"] >= 60) { if ($row["sessionsize"] >= 20) { $sid = $row["session"];