Guest User

Summoners War stat tool

a guest
Mar 21st, 2015
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.17 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <?php
  3. include 'db_connect.php';
  4.  
  5. session_start();
  6.  
  7. //Test the input
  8. function clearFormInput($data) {
  9.     $data = trim($data);
  10.     $data = stripslashes($data);
  11.     $data = strip_tags($data);
  12.     $data = htmlspecialchars($data);
  13.     return $data;
  14. }
  15.  
  16. if (isset($_POST['submit_stats'])) {
  17.     $id_hall = clearFormInput($_POST['drop_hall']);
  18.     $floor_nb = clearFormInput($_POST['drop_floor']);
  19.     $id_drop = clearFormInput($_POST['drop_drop']);
  20.     $drop_qty = clearFormInput($_POST['drop_qty']);
  21.    
  22.     //check quantity
  23.     $reqsql_maxqty = "SELECT drop_max FROM t_drop WHERE id_drop=".$id_drop;
  24.     $ressql_maxqty = mysqli_query($link, $reqsql_maxqty) or die(mysqli_error($link));
  25.     $row_maxqty = mysqli_fetch_array($ressql_maxqty);
  26.     if ($drop_qty > $row_maxqty['drop_max']) {
  27.         $drop_qty = $row_maxqty['drop_max'];
  28.     }
  29.     if ($drop_qty<=0) {
  30.         $drop_qty=1;
  31.     }
  32.    
  33.     $id_acc = 0;
  34.     if (isset($_SESSION['ID'])) {
  35.         $id_acc = $_SESSION['ID'];
  36.     }
  37.    
  38.     if ((is_numeric($id_hall)) && (is_numeric($floor_nb)) && (is_numeric($id_drop)) && (is_numeric($drop_qty))) {
  39.         $reqsql_addloot = "INSERT INTO t_loot VALUES(NULL,".time().",".$id_hall.",".$floor_nb.",".$id_drop.",".$drop_qty.",".$id_acc.")";
  40.         mysqli_query($link, $reqsql_addloot) or die(mysqli_error($link));
  41.     }
  42. }
  43. ?>
  44.  
  45. <html>
  46.     <head>
  47.         <meta charset="UTF-8" />
  48.         <title>Summoners War - Halls drop rates</title>
  49.         <script>
  50. function show(obj){
  51.     window.document.getElementById(obj).style.display = "inline-block";
  52. }
  53.  
  54. function hide(obj){
  55.     window.document.getElementById(obj).style.display = "none";
  56. }
  57.  
  58. function showhall(hall_code){
  59.     //list_drops_hall_
  60. <?php
  61.     $reqsql_hall_js = "SELECT hall_code FROM t_hall";
  62.     $ressql_hall_js = mysqli_query($link, $reqsql_hall_js) or die(mysqli_error($link));
  63.     while ($row_hall_js = mysqli_fetch_array($ressql_hall_js)) {
  64.         echo "hide('list_drops_hall_".$row_hall_js['hall_code']."');";
  65.     }
  66. ?>
  67.     show('list_drops_hall_'+hall_code);
  68. }
  69.         </script>
  70. <style>
  71.     body {
  72.         font-family: Arial,Verdana,sans-serif;
  73.     }
  74.     img {
  75.         max-width: 32px;
  76.         max-height: 32px;
  77.     }
  78.    
  79.     table {
  80.         border-collapse: collapse;
  81.     }
  82.     thead {
  83.         background-color: #EEE;
  84.     }
  85.     td, th {
  86.         border: 1px solid black;
  87.         padding: 2px 4px;
  88.     }
  89.     tbody tr:hover {
  90.         background-color: #DDD;
  91.     }
  92.    
  93.     tbody#table_form tr:hover {
  94.         background-color: transparent;
  95.     }
  96.    
  97.     #table_form td {
  98.         vertical-align: top;
  99.     }
  100.    
  101.     ul {
  102.         list-style:none;
  103.         padding: 0;
  104.         margin: 0;
  105.     }
  106.    
  107.     li {
  108.         padding: 8px 0;
  109.     }
  110.     label {
  111.         padding: 8px 16px;
  112.     }
  113.     li:hover {
  114.         background-color: #DDD;
  115.     }
  116.    
  117. </style>
  118.     </head>
  119.     <body>
  120.         <h1>Summoners War - Halls drop rates</h1>
  121. <?php include 'login.php' ?>
  122.         <form method="post" action="">
  123.        
  124.             <table>
  125.                 <thead>
  126.                     <tr>
  127.                         <td><h3>Hall</h3></td>
  128.                         <td><h3>Floor</h3></td>
  129.                         <td><h3>Loot</h3></td>
  130.                         <td><h3>Quantity</h3></td>
  131.                         <td></td>
  132.                     </tr>
  133.                 </thead>
  134.                 <tbody id="table_form">
  135.                     <tr>
  136. <td>
  137. <ul><?php
  138.     $reqsql_hall = "SELECT * FROM t_hall";
  139.     $ressql_hall = mysqli_query($link, $reqsql_hall) or die(mysqli_error($link));
  140.     while ($row_hall = mysqli_fetch_array($ressql_hall)) {
  141.         ?><li onclick="showhall('<?php echo $row_hall['hall_code']; ?>');"><input type="radio" name="drop_hall" id="drop_hall_<?php echo $row_hall['id_hall']; ?>" value="<?php echo $row_hall['id_hall']; ?>"><label for="drop_hall_<?php echo $row_hall['id_hall']; ?>"><?php echo '<img src="img/'.$row_hall['hall_code'].'.png" />'; ?> <?php echo stripslashes($row_hall['hall_name']); ?></label></li><?php
  142.     }
  143. ?></ul>
  144. </td>
  145.  
  146. <td>
  147. <ul><?php
  148.     $reqsql_floor = "SELECT * FROM t_floor";
  149.     $ressql_floor = mysqli_query($link, $reqsql_floor) or die(mysqli_error($link));
  150.     while ($row_floor = mysqli_fetch_array($ressql_floor)) {
  151.         ?><li><input type="radio" name="drop_floor" id="drop_floor_<?php echo $row_floor['floor_nb']; ?>" value="<?php echo $row_floor['floor_nb']; ?>"><label for="drop_floor_<?php echo $row_floor['floor_nb']; ?>"><?php echo $row_floor['floor_nb']; ?></label></li><?php
  152.     }
  153. ?></ul>
  154. </td>
  155.  
  156. <td>
  157. <?php
  158.     mysqli_data_seek($ressql_hall,0);
  159.     while ($row_hall = mysqli_fetch_array($ressql_hall)) {
  160. ?><ul id="list_drops_hall_<?php echo $row_hall['hall_code']; ?>" style="display:none;"><?php
  161.         //Get drop list for each hall
  162.         $reqsql_hall_drops = "SELECT t_drop.drop_name, t_drop.drop_code, t_drop.id_drop FROM t_drop, t_hall_drop WHERE t_drop.drop_code=t_hall_drop.drop_code AND t_hall_drop.hall_code='".$row_hall['hall_code']."'";
  163.         $ressql_hall_drops = mysqli_query($link, $reqsql_hall_drops) or die(mysqli_error($link));
  164.         while ($row_hall_drop = mysqli_fetch_array($ressql_hall_drops)) {
  165.             ?><li><input type="radio" name="drop_drop" id="drop_drop_<?php echo $row_hall['id_hall']; ?>_<?php echo $row_hall_drop['id_drop']; ?>" value="<?php echo $row_hall_drop['id_drop']; ?>"><label for="drop_drop_<?php echo $row_hall['id_hall']; ?>_<?php echo $row_hall_drop['id_drop']; ?>"><?php echo '<img src="img/'.$row_hall_drop['drop_code'].'.png" />'; ?> <?php echo stripslashes($row_hall_drop['drop_name']); ?></label></li><?php
  166.         }
  167. ?></ul><?php
  168.     }
  169. ?>
  170. </td>
  171.  
  172. <td>
  173. <ul id="drop_qty_list">
  174.     <li><input type="radio" name="drop_qty" id="drop_qty_1" value="1"><label for="drop_qty_1">1</label></li>
  175.     <li><input type="radio" name="drop_qty" id="drop_qty_2" value="2"><label for="drop_qty_2">2</label></li>
  176.     <li><input type="radio" name="drop_qty" id="drop_qty_3" value="3"><label for="drop_qty_3">3</label></li>
  177.     <li><input type="radio" name="drop_qty" id="drop_qty_4" value="4"><label for="drop_qty_4">4</label></li>
  178.     <li><input type="radio" name="drop_qty" id="drop_qty_5" value="5"><label for="drop_qty_5">5</label></li>
  179. </ul>
  180. </td>
  181.  
  182. <td>
  183. <input type="submit" id="submit_stats" name="submit_stats" />
  184. </td>
  185.  
  186.                     </tr>
  187.                 </tbody>
  188.             </table>
  189.         </form>
  190.        
  191.         <div id="stats">
  192. <?php
  193.  
  194. $reqsql_halls = "SELECT * FROM t_hall";
  195. $ressql_halls = mysqli_query($link, $reqsql_halls) or die(mysqli_error($link));
  196. while ($row_hall = mysqli_fetch_array($ressql_halls)) {
  197.     echo '<h2><img src="img/'.$row_hall['hall_code'].'.png" /> '.stripslashes($row_hall['hall_name']).' <img src="img/'.$row_hall['hall_code'].'.png" /></h2>';
  198.    
  199.     //drops linked
  200.     $reqsql_hall_drops = "SELECT * FROM t_drop, t_hall_drop WHERE t_drop.drop_code = t_hall_drop.drop_code AND t_hall_drop.hall_code='".$row_hall['hall_code']."'";
  201.     $ressql_hall_drops = mysqli_query($link, $reqsql_hall_drops) or die(mysqli_error($link));
  202. ?>
  203. <table>
  204.     <caption>Possible drops</caption>
  205.     <thead>
  206.         <tr>
  207.             <th></th>
  208.             <th>Name</th>
  209.             <th>Min</th>
  210.             <th>Max</th>
  211.         </tr>
  212.     </thead>
  213.     <tbody>
  214. <?php
  215.     while ($row_hall_drops = mysqli_fetch_array($ressql_hall_drops)) {
  216. ?>
  217.         <tr>
  218.             <td><img src="img/<?php echo $row_hall_drops['drop_code']; ?>.png" /></td>
  219.             <td><?php echo stripslashes($row_hall_drops['drop_name']); ?></td>
  220.             <td><?php echo $row_hall_drops['drop_min']; ?></td>
  221.             <td><?php echo $row_hall_drops['drop_max']; ?></td>
  222.         </tr>
  223. <?php
  224.     }
  225. ?>
  226.     </tbody>
  227. </table>
  228.  
  229. <?php
  230.     $arr_hall_droplist = array();
  231. ?>
  232. <table>
  233.     <caption>Drop stats</caption>
  234.     <thead>
  235.         <th>Floor</th>
  236.         <th>Runs</th>
  237. <?php
  238.     //Hall drops
  239.     $reqsql_hall_droplist = "SELECT t_drop.drop_code, t_drop.drop_name, t_drop.id_drop FROM t_drop, t_hall_drop WHERE t_drop.drop_code = t_hall_drop.drop_code AND t_hall_drop.hall_code='".$row_hall['hall_code']."'";
  240.     $ressql_hall_droplist = mysqli_query($link, $reqsql_hall_droplist) or die(mysqli_error($link));
  241.     while ($row_hall_droplist = mysqli_fetch_array($ressql_hall_droplist)) {
  242.         array_push($arr_hall_droplist,$row_hall_droplist['id_drop']);
  243.         echo '<th><img src="img/'.$row_hall_droplist['drop_code'].'.png" /> '.stripslashes($row_hall_droplist['drop_name'])."</th>";
  244.     }
  245. ?>
  246.     </thead>
  247.     <tbody>
  248. <?php
  249.    
  250.     //Floors
  251.     $reqsql_floors = "SELECT floor_nb FROM t_floor ORDER BY floor_nb";
  252.     $ressql_floors = mysqli_query($link, $reqsql_floors) or die(mysqli_error($link));
  253.     while ($row_floor = mysqli_fetch_array($ressql_floors)) {
  254.         echo "<tr>";
  255.         echo "<td>".$row_floor['floor_nb']."</td>";
  256.        
  257.         //stats for the floor
  258.         $reqsql_countloot = "SELECT count(id_loot) AS nb FROM t_loot WHERE t_loot.id_hall=".$row_hall['id_hall']." AND t_loot.floor_nb=".$row_floor['floor_nb'];
  259.         $ressql_countloot = mysqli_query($link, $reqsql_countloot) or die(mysqli_error($link));
  260.         $row_countloot = mysqli_fetch_array($ressql_countloot);
  261.         echo "<td>".$row_countloot['nb']."</td>";
  262.    
  263.         //stats by drop
  264.         foreach ($arr_hall_droplist as $droplist_id) {
  265.             $reqsql_loot = "SELECT COUNT(id_loot) as nb_loot, AVG(drop_qty) as avg_drop_qty FROM t_loot WHERE t_loot.id_hall=".$row_hall['id_hall']." AND t_loot.floor_nb=".$row_floor['floor_nb']." AND t_loot.id_drop=".$droplist_id;
  266.             $ressql_loot = mysqli_query($link, $reqsql_loot) or die(mysqli_error($link));
  267.             $row_loot = mysqli_fetch_array($ressql_loot);
  268.            
  269.             $loot_rate=0;
  270.             if ($row_countloot['nb']!=0) {
  271.                 $loot_rate=round($row_loot['nb_loot']/$row_countloot['nb']*100,2);
  272.             }
  273.             $average_drop = 0;
  274.             if ($row_loot['avg_drop_qty']!=null) {
  275.                 $average_drop=round($row_loot['avg_drop_qty'],2);
  276.             }
  277.            
  278.             echo "<td>".$loot_rate."% (".$average_drop.") </td>";
  279.         }
  280.         echo "</tr>";
  281.     }
  282. ?>
  283.     </tbody>
  284. </table>
  285. <?php
  286. }
  287. ?>
  288.         </div>
  289.     </body>
  290. </html>
  291. <?php
  292.     mysqli_close($link);
  293. ?>
Advertisement
Add Comment
Please, Sign In to add comment