Advertisement
Maskmagog

PHP showing leaderboards

Nov 26th, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.85 KB | None | 0 0
  1. <html>
  2. <head>
  3. <style>
  4. <?php include 'main.css'; ?>
  5. </style>
  6.  
  7. </head>
  8.  
  9. <body>
  10. <!-- Tablesorter script -->
  11. <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
  12. <script src="tablesorter/jquery.tablesorter.min.js"></script>
  13. <?php
  14.  
  15. /* Function to convert time format to 00:00.000 */
  16. function convertTo($init)
  17. {
  18.       $secs = floor($init);
  19.       $milli = (int) (($init - $secs) * 1000);
  20.       $milli = str_pad($milli, 3, '0', STR_PAD_LEFT);
  21.       $hours = ($secs / 3600);
  22.       $minutes = (($secs / 60) % 60);
  23.       $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
  24.       $seconds = $secs % 60;
  25.       $seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);    
  26.       $stageTime = "$minutes:$seconds.$milli";
  27.       return $stageTime;
  28.     }
  29.  
  30.  
  31. /* Connect to database */  
  32. $con=mysqli_connect("127.0.0.1","pcars","P33k4b00m%","pcarsdb_test");
  33. // Check connection
  34. if (mysqli_connect_errno())
  35. {
  36. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  37. }
  38. /* variables with wildcards if nothing choosen */
  39. $trackselect = "%%";
  40. $carselect = "%%";
  41. $selected = "";
  42. $choice = "";
  43.  
  44. /* Location select box */
  45. $trackdropdown = "SELECT DISTINCT track FROM laptimes ORDER BY track ASC";
  46. $resulttrack = mysqli_query($con,$trackdropdown);  
  47.     echo "<div float=left>";
  48.     echo "<form name='trackcarselect' METHOD='POST'><select id='trackselect' name='trackselect' class='dropdown' width='300' style='width: 300px'>";
  49.    
  50.     while ($row = $resulttrack->fetch_assoc()) {
  51.  
  52.                 unset($track);
  53.                 $track = $row['track'];
  54.                 if ($track == $_POST['trackselect']){
  55.                 $selected = 'selected="selected"'; }
  56.                 else {$selected="";}
  57.                    
  58.                 echo '<option value="'.$track.'" ' . $selected . '>'.$track.'</option>';
  59. }                      
  60.             echo "</select>";
  61.             if (!empty($_POST['trackselect'])) {
  62.                 $trackselect = $_POST['trackselect']; }
  63.             echo "</div>";  
  64.  
  65. /* carname select box */
  66. $cardropdown = "SELECT DISTINCT carname FROM laptimes WHERE track = '{$trackselect}' ORDER BY carname";
  67. $resultcar = mysqli_query($con,$cardropdown);  
  68.     echo "<div>";
  69.     echo "<select id='carselect' name='carselect' class='dropdown' width='300' style='width: 300px'>";
  70.     echo '<option value="%%">Any car</option>';
  71.     while ($row = $resultcar->fetch_assoc()) {
  72.  
  73.                 unset($car);
  74.                 $car = $row['carname'];
  75.                 if ($car == $_POST['carselect']){
  76.                 $selected = 'selected="selected"'; }
  77.                 else {$selected="";}
  78.                    
  79.                 echo '<option value="'.$car.'" ' . $selected . '>'.$car.'</option>';
  80. }                      
  81.     echo "</select><button name='choice' type='submit' value='toptimes'>Show top leaderboard</button><button name='choice' type='submit' value='personaltimes'>Show personal laps</button></form>";
  82.    
  83.    
  84.     if (!empty($_POST['carselect'])) {
  85.         $carselect = $_POST['carselect'];
  86.         echo "</div>";
  87. }
  88.  
  89. switch($_REQUEST['choice']) {
  90.  
  91.     case 'toptimes':
  92.     $choice = "";
  93.                 break;
  94.  
  95.     case 'personaltimes':
  96.     $choice = " AND player LIKE 'Maskmagog' ";
  97.                 break;
  98.    
  99. }
  100.  
  101.  
  102. //Select only top time for each player and car, track
  103. $sqlstring1="SELECT * FROM laptimes WHERE track = '{$trackselect}' {$choice} AND carname LIKE '{$carselect}' ORDER BY laptime ASC";
  104. //$sqlstring1 = "SELECT t1.* FROM laptimes t1
  105. //JOIN (
  106. //  SELECT player, MIN(laptime) AS min_laptime
  107. //  FROM laptimes
  108. //  GROUP BY player
  109. //) AS t2 ON t1.player = t2.player AND t1.laptime = t2.min_laptime
  110. //WHERE track = '{$trackselect}' {$choice} AND carname LIKE '{$carselect}' ORDER BY laptime ASC";
  111.  
  112. //echo $sqlstring1;
  113. $result = mysqli_query($con,$sqlstring1);
  114.  
  115.  
  116. /* Start table, with <thead> and <tbody> for sorting script*/
  117. echo "<table border=0 color=#000000 cellpadding='5' id='sortTable' class='tablesorter'>
  118. <thead>
  119. <tr>
  120. <th>Rank</th>
  121. <th>Player</th>
  122. <th>Car</th>
  123. <th>Lap</th>
  124. <th>S1</th>
  125. <th>S2</th>
  126. <th>S3</th>
  127. <th>Gap</th>
  128. <th>Date</th>
  129. <th>Mode</th>
  130. </tr>
  131. </thead>
  132. <tbody>";
  133.  
  134. /* Loop through results and make rows */
  135. while($row = mysqli_fetch_array($result))
  136. {
  137.     /* Make alternate row with different background (main.css) */
  138.     $x++;
  139.     $class = ($x%2 == 0)? 'whiteBackground': 'grayBackground';
  140. echo "<tr class='$class'>";
  141. echo "<td>" . $x . ".</td>";
  142. echo "<td>" . $row['player'] . "</td>";
  143. echo "<td>" . $row['carname'] . "</td>";
  144. echo "<td>" . convertTo($row['laptime']) . "</td>"; /*convertTo-function formats time 00:00.000 */
  145. echo "<td>" . convertTo($row['S1']) . "</td>";
  146. echo "<td>" . convertTo($row['S2']) . "</td>";
  147. echo "<td>" . convertTo($row['S3']) . "</td>";
  148. echo "<td>" . $row['gap'] . "</td>";
  149. echo "<td>" . $row['setdate'] . "</td>";
  150. echo "<td>" . $row['sessionmode'] . "</td>";
  151. echo "</tr>";
  152. }
  153.  
  154. echo "</tbody></table>";
  155.  
  156. mysqli_close($con);
  157. ?>
  158.  
  159. <!-- Tablesorter script -->
  160. <script>
  161. $(document).ready(function() {
  162. $("#sortTable").tablesorter();
  163. }
  164. );
  165. </script>
  166. </body>
  167. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement