<?php
include("conexion.php"); // Asegúrate de que este archivo está en la misma carpeta

// Verificar conexión
if (!$conexion) {
    die("Error de conexión: " . mysqli_connect_error());
}

// Consulta para obtener el reporte de puntajes
$query = "
    SELECT 
        t.fecha, 
        t.tblnomjgo AS nombre_juego, 
        CONCAT(a.nombre, ' ', a.apellidos) AS ganador, 
        min_puntaje AS puntaje
    FROM tblentjgo t
    JOIN (
        SELECT 
            r.idnentjgo, 
            r.idnentusu, 
            SUM(r.jgousupts) AS total_puntaje
        FROM reljgousu r
        GROUP BY r.idnentjgo, r.idnentusu
    ) p ON t.idnentjgo = p.idnentjgo
    JOIN (
        SELECT idnentjgo, MIN(total_puntaje) AS min_puntaje
        FROM (
            SELECT idnentjgo, idnentusu, SUM(jgousupts) AS total_puntaje
            FROM reljgousu
            GROUP BY idnentjgo, idnentusu
        ) subquery
        GROUP BY idnentjgo
    ) min_p ON p.idnentjgo = min_p.idnentjgo AND p.total_puntaje = min_p.min_puntaje
    JOIN accounts a ON p.idnentusu = a.id
    ORDER BY t.fecha DESC";

$result = mysqli_query($conexion, $query);

// Verificar si la consulta tiene errores
if (!$result) {
    die("Error en la consulta: " . mysqli_error($conexion));
}

// Verificar si hay datos
$num_rows = mysqli_num_rows($result);

// Consulta para obtener el número de juegos ganados por cada jugador
$query_jugadores = "
    SELECT ganador, COUNT(*) AS juegos_ganados
    FROM (
        SELECT 
            CONCAT(a.nombre, ' ', a.apellidos) AS ganador
        FROM tblentjgo t
        JOIN (
            SELECT 
                r.idnentjgo, 
                r.idnentusu, 
                SUM(r.jgousupts) AS total_puntaje
            FROM reljgousu r
            GROUP BY r.idnentjgo, r.idnentusu
        ) p ON t.idnentjgo = p.idnentjgo
        JOIN (
            SELECT idnentjgo, MIN(total_puntaje) AS min_puntaje
            FROM (
                SELECT idnentjgo, idnentusu, SUM(jgousupts) AS total_puntaje
                FROM reljgousu
                GROUP BY idnentjgo, idnentusu
            ) subquery
            GROUP BY idnentjgo
        ) min_p ON p.idnentjgo = min_p.idnentjgo AND p.total_puntaje = min_p.min_puntaje
        JOIN accounts a ON p.idnentusu = a.id
    ) ganadores
    GROUP BY ganador
    ORDER BY juegos_ganados DESC";

$result_jugadores = mysqli_query($conexion, $query_jugadores);

// Verificar si la consulta tiene errores
if (!$result_jugadores) {
    die("Error en la consulta de jugadores: " . mysqli_error($conexion));
}

// Consulta para obtener el número de juegos ganados en juegos con "Mom" en el nombre
$query_juegos_mom = "
    SELECT ganador, COUNT(*) AS juegos_ganados
    FROM (
        SELECT 
            CONCAT(a.nombre, ' ', a.apellidos) AS ganador
        FROM tblentjgo t
        JOIN (
            SELECT 
                r.idnentjgo, 
                r.idnentusu, 
                SUM(r.jgousupts) AS total_puntaje
            FROM reljgousu r
            GROUP BY r.idnentjgo, r.idnentusu
        ) p ON t.idnentjgo = p.idnentjgo
        JOIN (
            SELECT idnentjgo, MIN(total_puntaje) AS min_puntaje
            FROM (
                SELECT idnentjgo, idnentusu, SUM(jgousupts) AS total_puntaje
                FROM reljgousu
                GROUP BY idnentjgo, idnentusu
            ) subquery
            GROUP BY idnentjgo
        ) min_p ON p.idnentjgo = min_p.idnentjgo AND p.total_puntaje = min_p.min_puntaje
        JOIN accounts a ON p.idnentusu = a.id
        WHERE t.tblnomjgo LIKE '%Mom%'
    ) ganadores
    GROUP BY ganador
    ORDER BY juegos_ganados DESC";

$result_juegos_mom = mysqli_query($conexion, $query_juegos_mom);

// Verificar si la consulta tiene errores
if (!$result_juegos_mom) {
    die("Error en la consulta de juegos con 'Mom': " . mysqli_error($conexion));
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Reporte de Puntajes</title>
    <style>
        table { border-collapse: collapse; width: 100%; margin-bottom: 20px; }
        th, td { border: 1px solid black; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
    </style>
</head>
<body>
    <h2>Reporte de Puntajes</h2>

    <?php if ($num_rows > 0): ?>
        <table>
            <tr>
                <th>Fecha</th>
                <th>Nombre del Juego</th>
                <th>Ganador</th>
                <th>Puntaje</th>
            </tr>
            <?php while ($row = mysqli_fetch_assoc($result)): ?>
            <tr>
                <td><?php echo htmlspecialchars($row['fecha']); ?></td>
                <td><?php echo htmlspecialchars($row['nombre_juego']); ?></td>
                <td><?php echo htmlspecialchars($row['ganador']); ?></td>
                <td><?php echo htmlspecialchars($row['puntaje']); ?></td>
            </tr>
            <?php endwhile; ?>
        </table>
    <?php else: ?>
        <p>No hay datos disponibles.</p>
    <?php endif; ?>

    <h2>Ranking de Jugadores</h2>
    <?php if (mysqli_num_rows($result_jugadores) > 0): ?>
        <table>
            <tr>
                <th>Nombre del Jugador</th>
                <th>Número de Juegos Ganados</th>
            </tr>
            <?php while ($row_jugador = mysqli_fetch_assoc($result_jugadores)): ?>
            <tr>
                <td><?php echo htmlspecialchars($row_jugador['ganador']); ?></td>
                <td><?php echo htmlspecialchars($row_jugador['juegos_ganados']); ?></td>
            </tr>
            <?php endwhile; ?>
        </table>
    <?php else: ?>
        <p>No hay datos de jugadores ganadores.</p>
    <?php endif; ?>

    <h2>Ranking de Juegos con "Mom"</h2>
    <?php if (mysqli_num_rows($result_juegos_mom) > 0): ?>
        <table>
            <tr>
                <th>Nombre del Jugador</th>
                <th>Número de Juegos Ganados</th>
            </tr>
            <?php while ($row_mom = mysqli_fetch_assoc($result_juegos_mom)): ?>
            <tr>
                <td><?php echo htmlspecialchars($row_mom['ganador']); ?></td>
                <td><?php echo htmlspecialchars($row_mom['juegos_ganados']); ?></td>
            </tr>
            <?php endwhile; ?>
        </table>
    <?php else: ?>
        <p>No hay datos de juegos con "Mom".</p>
    <?php endif; ?>

</body>
</html>
