diff --git a/resultados.php b/resultados.php index 3cf48c6..d15f529 100644 --- a/resultados.php +++ b/resultados.php @@ -1,156 +1,291 @@ -prepare(" - SELECT u.idUsuario, u.nombreUsuario, e.idEquipo, e.nombreEquipo - FROM equipoxpartida exp - INNER JOIN equipoxusuario exu ON exp.idEquipo = exu.idEquipo - INNER JOIN usuario u ON exu.idUsuario = u.idUsuario - INNER JOIN equipo e ON exu.idEquipo = e.idEquipo - WHERE exp.idPartida = :idPartida -"); -$stmt->execute([':idPartida' => $idPartida]); -$listaJugadoresRaw = $stmt->fetchAll(PDO::FETCH_ASSOC); - -$primerosEnAcertar = $_SESSION['primeros_en_acertar'][$idPartida] ?? []; - -$jugadoresFinales = []; -$equiposFinales = []; - -// Respuestas de velocidad (+2 o +1) -foreach ($listaJugadoresRaw as $jugador) { - $idU = (int)$jugador['idUsuario']; - $idE = (int)$jugador['idEquipo']; - - $stmtRespuestas = $conexion->prepare(" - SELECT ra.idPartidaxPregunta, r.correcta - FROM respuestaalmacenada ra - INNER JOIN respuesta r ON ra.idRespuesta = r.idRespuesta - INNER JOIN partidaxpregunta pxp ON ra.idPartidaxPregunta = pxp.idPartidaxPregunta - WHERE pxp.idPartida = :idPartida AND ra.idUsuario = :idUsuario - "); - $stmtRespuestas->execute([':idPartida' => $idPartida, ':idUsuario' => $idU]); - $respuestasUsuario = $stmtRespuestas->fetchAll(PDO::FETCH_ASSOC); - - $aciertos = 0; - $puntosTotalesJugador = 0; - - foreach ($respuestasUsuario as $resp) { - if ((int)$resp['correcta'] === 1) { - $aciertos++; - $idPxp = $resp['idPartidaxPregunta']; - - // Si el ID de usuario coincide con el primero guardado de esa pregunta se lleva 2 puntos - if (isset($primerosEnAcertar[$idPxp]) && $primerosEnAcertar[$idPxp] === $idU) { - $puntosTotalesJugador += 2; - } else { - $puntosTotalesJugador += 1; - } - } - } - - $jugadoresFinales[] = [ - 'nombre' => $jugador['nombreUsuario'], - 'equipo' => $jugador['nombreEquipo'], - 'aciertos' => $aciertos, - 'puntos' => $puntosTotalesJugador - ]; - - if (!isset($equiposFinales[$idE])) { - $equiposFinales[$idE] = [ - 'nombre' => $jugador['nombreEquipo'], - 'puntos' => 0 - ]; - } - $equiposFinales[$idE]['puntos'] += $puntosTotalesJugador; -} - -// Ordenar según la puntuación final de mayor a menor -usort($jugadoresFinales, function($a, $b) { return $b['puntos'] <=> $a['puntos']; }); -usort($equiposFinales, function($a, $b) { return $b['puntos'] <=> $a['puntos']; }); -?> - - - - - - - Resultados - Trivial - - - - - -
-

⌛ Esperando a que todos los jugadores terminen...

-

Calculando estadísticas de velocidad y actualizando perfiles históricos en el servidor.

-
-
- - - - - + + + + + + + + Trivial - Resultado final + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+ +

+ ¡Trivial terminado! +

+ +

+ Estos son los resultados finales +

+ +
+ + + +
+ +
+ +
+ +
+ + Equipo ganador +
+ +
+ +

+ Los Cerebritos +

+ +
+ 850 + + puntos + +
+ +

+ + ¡Enhorabuena por la victoria! +

+ +
+ +
+ +
+ +
+ + + +
+ + +
+ +
+ +
+ + + Los Cerebritos + + + + + + +
+ +
+ +
+ +
+ 850 +
+ +
+ puntos +
+ +
+ +
+ + Jugadores +
+ +
    + +
  • + 1. Carlos +
  • + +
  • + 2. Marta +
  • + +
  • + 3. Pablo +
  • + +
  • + 4. Laura +
  • + +
  • + 5. David +
  • + +
  • + 6. Ana +
  • + +
  • + 7. Sergio +
  • + +
  • + 8. Lucía +
  • + +
  • + 9. Miguel +
  • + +
  • + 10. Elena +
  • + +
+ +
+ +
+ +
+ + + +
+ +
+ + +
+ + + Los Campeones + + + + + + +
+ +
+ +
+ +
+ 720 +
+ +
+ puntos +
+ +
+ +
+ + Jugadores +
+ +
    + +
  • + 1. Javier +
  • + +
  • + 2. Sofía +
  • + +
  • + 3. Diego +
  • + +
  • + 4. María +
  • + +
  • + 5. Alejandro +
  • + +
  • + 6. Paula +
  • + +
  • + 7. Álvaro +
  • + +
  • + 8. Carmen +
  • + +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + + Volver al buscador de salas + + + +
+ +
+ + + + + + \ No newline at end of file