PageRenderTime 27ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/php/classement_index.php

https://gitlab.com/Potatoes_IIE/projet_web
PHP | 281 lines | 226 code | 13 blank | 42 comment | 34 complexity | 134ec48d694763b28c57b347bf4d6ed6 MD5 | raw file
  1. <?php
  2. /**
  3. * génère le classement des 5 premiers
  4. */
  5. function consult(){
  6. $DB = new database();
  7. print '<table class="classement">';
  8. print '<tr><th>Classement</th><th>Pseudo</th></tr>';
  9. $classement = $DB->Classement(5,0);
  10. if(!$classement){
  11. /*erreur*/
  12. }
  13. else {
  14. $x = 1;
  15. foreach ($classement as $pseudo => $elo) {
  16. echo "<tr><td>$x</td><td>$pseudo <div style='display:block; font-size:15px; color:#df2020'>$elo pts</div></td></tr>";
  17. $x++;
  18. }
  19. }
  20. echo '</table>';
  21. }
  22. /**
  23. * fonction qui créer le classement de la page d'accueil dans le style voulu
  24. */
  25. function consult2(){
  26. $DB = new database();
  27. print '<tr><th>Classement</th><th>Pseudo</th></tr>';
  28. $classement = $DB->Classement(5,0);
  29. if(!$classement){
  30. /*erreur*/
  31. }
  32. else {
  33. $x = 1;
  34. foreach ($classement as $pseudo => $elo) {
  35. echo "<tr><td>$x</td><td>$pseudo <div style='display:block; font-size:13px; color:#df2020'>$elo pts</div></td></tr>";
  36. $x++;
  37. }
  38. }
  39. echo '</table>';
  40. }
  41. /** nous permet de calculer l'ensemble des buts marqués et encaissé d'un joueur
  42. * @param $pseudo
  43. * @return array
  44. */
  45. function bmBE($pseudo){
  46. $db = new database();
  47. $sql = "SELECT pts1,pts2,gagnant FROM rencontre WHERE pseudo1 = '$pseudo' OR pseudo2 ='$pseudo'";
  48. $res = $db->query($sql);
  49. $bm = 0;
  50. $be = 0;
  51. while($row = pg_fetch_row($res)){
  52. if($row[2] == $pseudo){
  53. $bm += $row[0];
  54. if($row[1] < 0){
  55. $bm += abs($row[1]);
  56. }
  57. else {
  58. $be += $row[1];
  59. }
  60. }
  61. else{
  62. $be += $row[0];
  63. if($row[1] < 0){
  64. $be += abs($row[1]);
  65. }
  66. else {
  67. $bm += $row[1];
  68. }
  69. }
  70. }
  71. return [$bm, $be];
  72. }
  73. /** fonction qui créer le tableau du classement de tous les joueurs
  74. * @param $taille
  75. * @param $offset
  76. * @param $cla
  77. */
  78. function top($taille, $offset, $cla){
  79. $db = new database();
  80. print '<tr><th>#</th><th>Pseudo</th><th>Points Elo</th><th>Total Match</th><th>Total Victoire</th><th>Total Defaite</th><th>Ratio Vict/Def</th><th>Buts Marqués</th><th>Buts Encaissés</th><th>Ratio BM/BE</th></tr>';
  81. print '</thead>';
  82. print '<tbody>';
  83. $classement = $db->Classement($taille,$offset);
  84. if(!$classement){
  85. /*erreur*/
  86. }
  87. else {
  88. $x = 1;
  89. foreach ($classement as $pseudo => $elo) {
  90. $sql = "SELECT COUNT(id) FROM rencontre WHERE pseudo1 = '$pseudo' OR pseudo2 = '$pseudo'";
  91. $sql2 = "SELECT COUNT(id) FROM rencontre WHERE gagnant = '$pseudo'";
  92. $res = $db->query($sql);
  93. $res2 = $db->query($sql2);
  94. $row = pg_fetch_row($res);
  95. $row2 = pg_fetch_row($res2);
  96. $defaite = $row[0] - $row2[0];
  97. $b = bmBE($pseudo);
  98. if($b[1] == 0){
  99. $ratio2 = $b[0];
  100. }
  101. else {
  102. $ratio2 = round($b[0]/$b[1],2);
  103. }
  104. if($defaite == 0){
  105. $ratio = $row2[0];
  106. }
  107. else {
  108. $ratio = round($row2[0]/$defaite, 2);
  109. }
  110. if($x == $cla){
  111. echo "<tr class=\"danger\"><td>$x</td><td>$pseudo</td><td><strong>$elo</strong></td><td>$row[0]</td><td>$row2[0]</td><td>$defaite</td><td>$ratio</td><td>$b[0]</td><td>$b[1]</td><td>$ratio2</td></tr>";
  112. $x++;
  113. }
  114. else {
  115. echo "<tr><td>$x</td><td>$pseudo</td><td><strong>$elo</strong></td><td>$row[0]</td><td>$row2[0]</td><td>$defaite</td><td>$ratio</td><td>$b[0]</td><td>$b[1]</td><td>$ratio2</td></tr>";
  116. $x++;
  117. }
  118. }
  119. }
  120. print '</tbody>';
  121. print '</table>';
  122. }
  123. /**
  124. * fonction qui créer le tableau des joueurs inscrits pour le tournoi en cours
  125. */
  126. function top_t(){
  127. $DB = new tour();
  128. print '<tr><th class="tournois">#</th><th class="tournois">Pseudo</th><th class="tournois">Points Elo</th></tr>';
  129. print '</thead>';
  130. print '<tbody>';
  131. $classement = $DB->listeInscrit_tournois();
  132. if(!$classement){
  133. /*erreur*/
  134. }
  135. else {
  136. $x = 1;
  137. foreach ($classement as $pseudo => $elo) {
  138. echo "<tr><td>$x</td><td>$pseudo</td><td>$elo pts</td></tr>";
  139. $x++;
  140. }
  141. }
  142. print '</tbody>';
  143. print '</table>';
  144. }
  145. /**
  146. * génère la table des matchs en attentes avec les différentes actions
  147. */
  148. function consult_attente(){
  149. $db = new database();
  150. print '<tr><th>Id</th><th>Date</th><th>Pseudo 1</th><th>Point 1</th><th>Pseudo 2</th><th>Point 2</th><th>Gagnant</th><th>Delta Elo</th><th>Action</th></tr>';
  151. print '</thead>';
  152. print '<tbody>';
  153. $sql = "SELECT * FROM rencontre_attente ORDER BY id ASC";
  154. $res = $db->query($sql);
  155. while(($row = pg_fetch_row($res))){
  156. echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td><td><a href=\"php/add_match.php?id=$row[0]\"><button type=\"button\" class=\"btn btn-success btn-xs btn-round\"><span class=\"glyphicon glyphicon-ok\"></span></button></a> <a href=\"php/del_match_attente.php?id=$row[0]\"><button type=\"button\" class=\"btn btn-danger btn-xs btn-round\"><span class=\"glyphicon glyphicon-remove\"></span></button></a></td></tr>";
  157. }
  158. echo '</tbody>';
  159. echo '</table>';
  160. }
  161. /** table des statistiques du joueur
  162. * @param $pseudo
  163. */
  164. function stat_profil($pseudo){
  165. $db = new database();
  166. $sql = "SELECT COUNT(id) FROM rencontre WHERE pseudo1 = '$pseudo' OR pseudo2 = '$pseudo'";
  167. $sql2 = "SELECT COUNT(id) FROM rencontre WHERE gagnant = '$pseudo'";
  168. $sql3 = "SELECT nb_elo, date_ins FROM joueur WHERE pseudo = '$pseudo'";
  169. $res = $db->query($sql);
  170. $res2 = $db->query($sql2);
  171. $res3 = $db->query($sql3);
  172. print '<tr><th>Date d\'inscription</th><th>Total Match</th><th>Victoire</th><th>Defaite</th><th>Ratio V/D</th><th>BM</th><th>BE</th><th>Ratio BM/BE</th><th>Point Elo</th></tr>';
  173. print '</thead>';
  174. print '<tbody>';
  175. $row = pg_fetch_row($res);
  176. $row2 = pg_fetch_row($res2);
  177. $row3 = pg_fetch_row($res3);
  178. $defaite = $row[0] - $row2[0];
  179. $b = bmBE($pseudo);
  180. if($b[1] == 0){
  181. $ratio2 = $b[0];
  182. }
  183. else {
  184. $ratio2 = round($b[0]/$b[1],2);
  185. }
  186. if($defaite == 0){
  187. $ratio = $row2[0];
  188. }
  189. else {
  190. $ratio = round($row2[0]/$defaite, 2);
  191. }
  192. echo "<tr><td>$row3[1]</td><td>$row[0]</td><td>$row2[0]</td><td>$defaite</td><td>$ratio</td><td>$b[0]</td><td>$b[1]</td><td>$ratio2</td><td>$row3[0] pts</td></tr>";
  193. echo '</tbody>';
  194. }
  195. /** fonction auxiliaire pour la création du graphe (retourne le nombre de date où l'ELO à évolué
  196. * @param $pseudo
  197. * @return int
  198. */
  199. function taille_date($pseudo){
  200. $db = new database();
  201. $sql = "SELECT date,SUM(nb_elo) FROM evo_elo WHERE pseudo = '$pseudo' GROUP BY date ORDER BY date";
  202. $res = $db->query($sql);
  203. $x = 0;
  204. while($row = pg_fetch_row($res)){
  205. $x++;
  206. }
  207. return $x;
  208. }
  209. /** fonction auxiliaire qui nous donne le minimum du elo d'un joueur
  210. * @param $pseudo
  211. * @return int
  212. */
  213. function minElo($pseudo){
  214. $db = new database();
  215. $sql = "SELECT SUM(nb_elo) FROM evo_elo WHERE pseudo = '$pseudo' GROUP BY date ORDER BY date";
  216. $res = $db->query($sql);
  217. $tmp = 500;
  218. $resultat = $tmp;
  219. while($row = pg_fetch_row($res)){
  220. $tmp += $row[0];
  221. if ($tmp <= $resultat){
  222. $resultat = $tmp;
  223. }
  224. }
  225. return ($resultat - 10);
  226. }
  227. /** fonction qui créer les données du graphe
  228. * @param $pseudo
  229. */
  230. function graph($pseudo){
  231. $db = new database();
  232. $sql = "SELECT date,SUM(nb_elo) FROM evo_elo WHERE pseudo = '$pseudo' GROUP BY date ORDER BY date";
  233. $sql2 = "SELECT date_ins FROM joueur WHERE pseudo = '$pseudo'";
  234. $res2 = $db->query($sql2);
  235. $row2 = pg_fetch_row($res2);
  236. echo "{date: '$row2[0]', a:500},";
  237. $res = $db->query($sql);
  238. $tmp = 500;
  239. for($i = 0; $i<taille_date($pseudo)-1; $i++){
  240. $row=pg_fetch_row($res);
  241. $tmp += $row[1];
  242. echo "{date: '$row[0]', a:$tmp},";
  243. }
  244. $row=pg_fetch_row($res);
  245. $tmp += $row[1];
  246. echo "{date: '$row[0]', a:$tmp}";
  247. }
  248. /** affiche l'ensemble des matchs d'un joueur
  249. * @param $pseudo
  250. */
  251. function allMatch($pseudo){
  252. print '<tr><th>Date</th><th>Pseudo 1</th><th>Point 1</th><th>Pseudo 2</th><th>Point 2</th><th>Delta Elo</th></tr>';
  253. print '</thead>';
  254. print '<tbody>';
  255. $db = new database();
  256. $sql = "SELECT date,pseudo1,pts1,pseudo2,pts2,deltaelo,gagnant FROM rencontre WHERE pseudo1 = '$pseudo' OR pseudo2 = '$pseudo' ORDER BY date";
  257. $res = $db->query($sql);
  258. while($row = pg_fetch_row($res)){
  259. if($row[6] == $pseudo){
  260. $tmp = $row[5];
  261. }
  262. else {
  263. $tmp = -$row[5];
  264. }
  265. echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$tmp</td></tr>";
  266. }
  267. echo '</tbody>';
  268. }