Advertisement
Guest User

Untitled

a guest
Oct 18th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.77 KB | None | 0 0
  1. <?php
  2.  
  3. include "simple_parse.php";
  4.  
  5.  
  6. function endsWith($haystack, $needle) {
  7. // search forward starting from end minus needle length characters
  8. return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== false);
  9. }
  10.  
  11.  
  12. $htmlString = "<table border =1 style = 'border-spacing:0' class = 'table'>";
  13. $htmlString .= "<tr>";
  14. $htmlString .= "<th rowspan = '2'>#</th>";
  15. $htmlString .= "<th rowspan = '2'>ID</th>";
  16. $htmlString .= "<th rowspan = '2'>Trial Mode</th>";
  17. $htmlString .= "<th rowspan = '2'>Working BASELINE</th>";
  18. $htmlString .= "<th rowspan = '2'>Total Impairment Score</th>";
  19. $htmlString .= "<th rowspan = '2'>Breathalyzer Number</th>";
  20. $htmlString .= "<th rowspan = '2'>Impairment Type</th>";
  21. $htmlString .= "<th rowspan = '2'>Trial start time</th>";
  22. $htmlString .= "<th rowspan = '2'>Trial end time</th>";
  23. $htmlString .= "<th rowspan = '2'>T1ART</th>";
  24. $htmlString .= "<th rowspan = '2'>T1AED</th>";
  25. $htmlString .= "<th rowspan = '2'>T1PWS</th>";
  26. $htmlString .= "<th rowspan = '2'>T2AED</th>";
  27. //$htmlString .= "<th rowspan = '2'>T2PMC</th>";
  28. $htmlString .= "<th rowspan = '2'>T2ERRCT</th>";
  29. $htmlString .= "<th rowspan = '2'>T2ART</th>";
  30. $htmlString .= "<th rowspan = '2'>T2TIME</th>";
  31. $htmlString .= "<th rowspan = '2'>T3PERNOT</th>";
  32. $htmlString .= "<th rowspan = '2'>T3ERRCT</th>";
  33. $htmlString .= "<th rowspan = '2'>T4TOTAL</th>";
  34. $htmlString .= "<th rowspan = '2'>T4LEFT</th>";
  35. $htmlString .= "<th rowspan = '2'>T4RIGHT</th>";
  36. $htmlString .= "<th rowspan = '2'>Total Impairment</th>";
  37. $htmlString .= "<th colspan = '5'>Task1</th>";
  38. $htmlString .= "<th colspan = '6'>Task2</th>";
  39. $htmlString .= "<th colspan = '5'>Task3</th>";
  40. $htmlString .= "<th colspan = '3'>Task4</th>";
  41. $htmlString .= "<th rowspan = '2'>Device</th>";
  42. $htmlString .= "<th rowspan = '2'>DB ver</th>";
  43. $htmlString .= "</tr><tr>";
  44.  
  45.  
  46. $htmlString .= "<th>Reaction Time</th>";
  47. $htmlString .= "<th>Total Distance</th>";
  48. $htmlString .= "<th>Total Shapes</th>";
  49. $htmlString .= "<th>Wrong Shape Count</th>";
  50. $htmlString .= "<th>Total Screen Shapes</th>";
  51.  
  52. $htmlString .= "<th>Missed Circles</th>";
  53. $htmlString .= "<th>Number you entered</th>";
  54. $htmlString .= "<th>Reaction Time</th>";
  55. $htmlString .= "<th>Total circles count</th>";
  56. $htmlString .= "<th>Your 60 seconds estimation</th>";
  57. $htmlString .= "<th>Total Error Distance</th>";
  58.  
  59. $htmlString .= "<th>Number of squares that appeared</th>";
  60. $htmlString .= "<th>Number that player entered</th>";
  61. $htmlString .= "<th>Difference</th>";
  62. $htmlString .= "<th>Time for your finger in circle</th>";
  63. $htmlString .= "<th>Percentage</th>";
  64.  
  65. $htmlString .= "<th>Total distance</th>";
  66. $htmlString .= "<th>Distance moved standing on LEFT leg</th>";
  67. $htmlString .= "<th>Distance moved standing on RIGHT leg</th>";
  68.  
  69.  
  70. $htmlString .= "</tr>";
  71.  
  72. $servername = "localhost";
  73. $username = "druipelc_druid";
  74. $password = "PmDgTiFdAeUCyWeiDev822%";
  75.  
  76. // Create connection
  77. $conn = mysqli_connect($servername, $username, $password);
  78.  
  79. // Check connection
  80. if (!$conn) {
  81. echo '{}'; exit;
  82. }
  83.  
  84. mysqli_select_db($conn, 'druipelc_druid');
  85.  
  86. $result = 0;
  87. if (isset($_POST['id']) && ctype_alnum($_POST['id']))
  88. $result = mysqli_query($conn, "select * from druid_data where PEOPLE_ID like '{$_POST['id']}' order by PEOPLE_ID, mode");
  89. else
  90. $result = mysqli_query($conn, "select * from druid_data order by PEOPLE_ID, mode");
  91.  
  92. $no = 0;
  93.  
  94. while ($row = mysqli_fetch_assoc($result))
  95. {
  96. $no++;
  97. $row['PEOPLE_DATA'] = json_decode($row['PEOPLE_DATA'], true);
  98. if ($row['PEOPLE_DATA'] == null) continue;
  99.  
  100. if (!isset($row['device']) || $row['device'] == '') $row['device'] = '-';
  101.  
  102.  
  103. $row['PEOPLE_DATA']['Task1']['Reaction Time'] = str_replace('" ', '.', $row['PEOPLE_DATA']['Task1']['Reaction Time']);
  104. $row['PEOPLE_DATA']['Task1']['Total Distance'] = str_replace('"', '', $row['PEOPLE_DATA']['Task1']['Total Distance']);
  105. $row['PEOPLE_DATA']['Task2']['Reaction time'] = str_replace('"', '', $row['PEOPLE_DATA']['Task2']['Reaction time']);
  106. if (!endsWith($row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation'], "slow"))
  107. $row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation'] = str_replace('" fast', '', $row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation']);
  108. else $row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation'] = '-' . str_replace('" slow', '', $row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation']);
  109. $row['PEOPLE_DATA']['Task3']['Time for your finger in circle'] = str_replace('"', '', $row['PEOPLE_DATA']['Task3']['Time for your finger in circle']);
  110. $row['PEOPLE_DATA']['Task3']['Percentage'] = str_replace('%', '', $row['PEOPLE_DATA']['Task3']['Percentage']);
  111. $row['PEOPLE_DATA']['Task2']['Total Error Distance'] = str_replace('"', '', $row['PEOPLE_DATA']['Task2']['Total Error Distance']);
  112. $row['PEOPLE_DATA']['Task4']['Total distance'] = str_replace('"', '', $row['PEOPLE_DATA']['Task4']['Total distance']);
  113. $row['PEOPLE_DATA']['Task4']['Distance moved standing on LEFT leg'] = str_replace('"', '', $row['PEOPLE_DATA']['Task4']['Distance moved standing on LEFT leg']);
  114. $row['PEOPLE_DATA']['Task4']['Distance moved standing on RIGHT leg'] = str_replace('"', '', $row['PEOPLE_DATA']['Task4']['Distance moved standing on RIGHT leg']);
  115.  
  116.  
  117.  
  118. $T1ART = $row['PEOPLE_DATA']['Task1']['Reaction Time'] * 1.0 / $row['PEOPLE_DATA']['Task1']['Total shapes'];
  119. $T1AED = $row['PEOPLE_DATA']['Task1']['Total Screen Shapes'] == 0 ? 'NaN' : $row['PEOPLE_DATA']['Task1']['Total Distance'] * 1.0 / $row['PEOPLE_DATA']['Task1']['Total Screen Shapes'];
  120. $T1PWS = $row['PEOPLE_DATA']['Task1']['Wrong Shape Count'] * 1.0 / $row['PEOPLE_DATA']['Task1']['Total shapes'];
  121.  
  122. $T2AED = $row['PEOPLE_DATA']['Task2']['Total Count of circles'] == 0? 'NaN' : $row['PEOPLE_DATA']['Task2']['Total Error Distance'] * 1.0 / $row['PEOPLE_DATA']['Task2']['Total Count of circles'];
  123. $T2PMC = 0;//$row['PEOPLE_DATA']['Task2']['Total Count of circles'] == 0? 'NaN' : $row['PEOPLE_DATA']['Task2']['Missed circles'] * 1.0 / $row['PEOPLE_DATA']['Task2']['Total Count of circles'];
  124. $T2ERRCT = abs($row['PEOPLE_DATA']['Task2']['Total Count of circles'] - $row['PEOPLE_DATA']['Task2']['Number (of circles) you entered']);
  125. $T2ART = $row['PEOPLE_DATA']['Task2']['Total Count of circles'] == 0? 'NaN' : $row['PEOPLE_DATA']['Task2']['Reaction time'] / $row['PEOPLE_DATA']['Task2']['Total Count of circles'];
  126. $T2TIME = abs($row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation']);
  127.  
  128. $T3PERNOT = 100 - $row['PEOPLE_DATA']['Task3']['Percentage'];
  129. $T3ERRCT = abs($row['PEOPLE_DATA']['Task3']['Difference']);
  130.  
  131. $T4TOTAL = $row['PEOPLE_DATA']['Task4']['Total distance'];
  132. $T4LEFT = $row['PEOPLE_DATA']['Task4']['Distance moved standing on LEFT leg'];
  133. $T4RIGHT = $row['PEOPLE_DATA']['Task4']['Distance moved standing on RIGHT leg'];
  134.  
  135.  
  136.  
  137. $htmlString .= "<tr><td>$no</td>";
  138. $htmlString .= "<td>{$row['PEOPLE_ID']}</td>";
  139. $htmlString .= "<td>{$row['mode']}</td>";
  140. if (isset($row['PEOPLE_DATA']['baselineScore']))
  141. $htmlString .= "<td>{$row['PEOPLE_DATA']['baselineScore']}</td>";
  142. else $htmlString .= "<td>-</td>";
  143.  
  144. if (isset($row['PEOPLE_DATA']['totalScore']))
  145. $htmlString .= "<td>{$row['PEOPLE_DATA']['totalScore']}</td>";
  146. else $htmlString .= "<td>-</td>";
  147. $htmlString .= "<td>{$row['PEOPLE_DATA']['Breathalyzer Number']}</td>";
  148. $htmlString .= "<td>{$row['PEOPLE_DATA']['Impairment Type']}</td>";
  149. $htmlString .= "<td>{$row['PEOPLE_DATA']['Start Time']}</td>";
  150. $htmlString .= "<td>{$row['PEOPLE_DATA']['End Time']}</td>";
  151.  
  152. $htmlString .= "<td>$T1ART</td>";
  153. $htmlString .= "<td>$T1AED</td>";
  154. $htmlString .= "<td>$T1PWS</td>";
  155. $htmlString .= "<td>$T2AED</td>";
  156. // $htmlString .= "<td>$T2PMC</td>";
  157. $htmlString .= "<td>$T2ERRCT</td>";
  158. $htmlString .= "<td>$T2ART</td>";
  159. $htmlString .= "<td>$T2TIME</td>";
  160. $htmlString .= "<td>$T3PERNOT</td>";
  161. $htmlString .= "<td>$T3ERRCT</td>";
  162. $htmlString .= "<td>$T4TOTAL</td>";
  163. $htmlString .= "<td>$T4LEFT</td>";
  164. $htmlString .= "<td>$T4RIGHT</td>";
  165.  
  166. $TOTALIMPAIRMENT = $T1ART + $T1AED + $T1PWS + $T2AED + $T2PMC + $T2ERRCT + $T2ARC + $T2TIME + $T3PERNOT + $T3ERRCT + $T4TOTAL + $T4LEFT + $T4RIGHT;
  167.  
  168. $htmlString .= "<td>-</td>";
  169. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task1']['Reaction Time']}</td>";
  170. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task1']['Total Distance']}</td>";
  171. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task1']['Total shapes']}</td>";
  172. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task1']['Wrong Shape Count']}</td>";
  173. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task1']['Total Screen Shapes']}</td>";
  174.  
  175. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Missed circles']}</td>";
  176. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Number (of circles) you entered']}</td>";
  177. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Reaction time']}</td>";
  178. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Total Count of circles']}</td>";
  179. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Your 60 seconds estimation']}</td>";
  180. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task2']['Total Error Distance']}</td>";
  181.  
  182. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task3']['Number of squares that appeared']}</td>";
  183. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task3']['Number that player entered']}</td>";
  184. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task3']['Difference']}</td>";
  185. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task3']['Time for your finger in circle']}</td>";
  186. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task3']['Percentage']}</td>";
  187.  
  188.  
  189. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task4']['Total distance']}</td>";
  190. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task4']['Distance moved standing on LEFT leg']}</td>";
  191. $htmlString .= "<td>{$row['PEOPLE_DATA']['Task4']['Distance moved standing on RIGHT leg']}</td>";
  192.  
  193. $htmlString .= "<td>{$row['device']}</td>";
  194. $htmlString .= "<td>{$row['version']}</td>";
  195. $htmlString .= "</tr>";
  196. }
  197.  
  198. $htmlString .= "</table>";
  199.  
  200.  
  201.  
  202. $cols = array('ID', 'Trial Mode', 'Working BASELINE', 'Total Impairment Score', 'Breathalyzer Number', 'Impairment Type', 'Date', 'Start Time', 'End Time', 'T1ART', 'T1AED', 'T1PWS', 'T2AED', /*'T2PMC',*/ 'T2ERRCT', 'T2ART', 'T2TIME', 'T3PERNOT', 'T3ERRCT', 'T4TOTAL', 'T4LEFT', 'T4RIGHT','Total Impairment', 'Reaction Time(Task1)', 'Total Distance(Task1)', 'Total Shapes(Task1)', 'Wrong Shapes Count(Task1)', 'Total Screen Shapes(Task1)',
  203. 'Missed Circles(Task2)', 'Number (of circles) you entered(Task2)', 'Reaction Time(Task2)', 'Total Count of Circles(Task2)', 'Your 60 seconds estimation(Task2)', 'Total Error Distance(Task2)',
  204. 'Number of squares that appeared(Task3)', 'Number that player entered(Task3)', 'Difference(Task3)', 'Time for your finger in circle(Task3)', 'Percentage(Task3)',
  205. 'Total Distance(Task4)', 'Distance moved standing on LEFT leg(Task4)', 'Distance moved standing on RIGHT leg(Task4)', 'Device', 'DB version');
  206.  
  207. if (isset($_REQUEST['submit']) && $_REQUEST['submit'] == 'export_to_csv' ) {
  208. $html = str_get_html($htmlString);
  209.  
  210.  
  211.  
  212. header('Content-type: text/csv');
  213. header('Content-Disposition: attachment; filename=druid.csv');
  214.  
  215. $fp = fopen("php://output", "w");
  216.  
  217. fputcsv($fp, $cols);
  218.  
  219. foreach($html->find('tr') as $rindex => $element)
  220. {
  221. if ($rindex < 2) continue;
  222.  
  223. $td = array();
  224. $tdArray = $element->find('td');
  225. foreach($tdArray as $index => $row)
  226. {
  227. if ($index == 7)
  228. {
  229. $date_arr = explode(' ', $row->plaintext);
  230. $date_ele = explode('/', $date_arr[0]);
  231.  
  232. $td[] = " {$date_ele[2]}-{$date_ele[0]}-{$date_ele[1]}";
  233. $td[] = $date_arr[1];
  234. }
  235. else if ($index == 8)
  236. {
  237. $date_arr = explode(' ', $row->plaintext);
  238. $td[] = $date_arr[1];
  239. }
  240. else if ($index > 0) {
  241. if ($index != sizeof($tdArray) - 2 && ($index == 3 || $index == 4 || $index == 5 || $index >= 9))
  242. $td[] = (float)($row->plaintext);
  243. else
  244. $td[] = $row->plaintext;
  245. }
  246. }
  247.  
  248. if (sizeof($td) > 0) fputcsv($fp, $td);
  249.  
  250. }
  251.  
  252.  
  253. fclose($fp);
  254. }
  255. else {
  256. ?>
  257.  
  258. <head>
  259. <style type = 'text/css'>
  260. th, td
  261. {
  262. text-align:center !important;
  263.  
  264. }
  265. th
  266. {
  267. background: #2980b9;
  268. border: 1px solid black;
  269. vertical-align:middle;
  270. color:white;
  271. }
  272.  
  273. </style>
  274. <title>DRUID data</title>
  275. <meta charset="utf-8">
  276. <meta name="viewport" content="width=device-width, initial-scale=1">
  277. <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  278. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
  279. <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
  280.  
  281. </head>
  282. <body>
  283. <form method = 'post' action = ''>
  284. <label>Enter ID:</label>
  285. <input type = text name = 'id' value = '<?php echo $_POST['id']; ?>'>
  286. <button type = submit onclick = 'document.getElementById("submit").value = ""; '> Go </button>
  287. <button type = submit onclick = 'document.getElementById("submit").value = "export_to_csv"; '> Export to CSV </button>
  288. <input type = hidden name = 'submit' id = 'submit'>
  289. </form>
  290.  
  291. <?php echo $htmlString; ?>
  292. </body>
  293.  
  294. <?php } ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement