<!DOCTYPE html>
<html lang="en">
<head>
    <link href="../build/css/custom.css" rel="stylesheet">
    <style>
        .number-circle {
            width: 40px;
            height: 40px;
            background-color: #f0f0f0;
            color: #333;
            border-radius: 50%;
            text-align: center;
            line-height: 40px;
            display: inline-block;
            margin: 5px;
        }
        .card-header {
            font-weight: bold;
        }
        .count_bottom {
            padding: 5px;
            border-radius: 5px;
            color: white;
        }
    </style>
</head>
<body>
<?php
$servername = "localhost";
$username = "lotto";
$password = "12Qwaszx**";
$dbname = "lotto";


// Crear conexión
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    echo "<div class='alert alert-danger'>Error de conexión: " . $conn->connect_error . "</div>";
    exit;
}

// Obtener las variables del formulario
$table = $_POST['table'] ?? '';
$month = $_POST['month'] ?? '';
$day = $_POST['day'] ?? '';
$year = $_POST['year'] ?? '';

// Verificar que se haya seleccionado una opción válida
if (empty($table)) {
    echo "<div class='alert alert-warning'>Por favor selecciona el tipo de resultado (Martes o Sábado).</div>";
    exit;
}

// Inicializar la consulta base
$query = "SELECT * FROM (";

// Comprobar qué opción de tabla ha sido seleccionada
if ($table == "smartes") {
    $query .= "SELECT * FROM `smartes`";
} elseif ($table == "ssabado") {
    $query .= "SELECT * FROM `ssabado`";
} elseif ($table == "sabado_martes") {
    $query .= "SELECT * FROM `smartes` UNION ALL SELECT * FROM `ssabado`";
} else {
    echo "<div class='alert alert-warning'>Tipo de resultado no válido.</div>";
    exit;
}

// Agregar condiciones de filtrado si existen
$query .= " WHERE 1=1"; // La condición '1=1' es para poder agregar filtros fácilmente

if (!empty($month)) {
    $query .= " AND mes = ?";
}

if (!empty($day)) {
    $query .= " AND dia = ?";
}

if (!empty($year)) {
    $query .= " AND year = ?";
}

$query .= ") AS combined_results"; // Cerramos la subconsulta

// Preparar la consulta
$stmt = $conn->prepare($query);

if ($stmt) {
    // Definir tipos de datos para los parámetros
    $types = '';  // Tipo de los parámetros
    $params = []; // Array para los parámetros

    // Vincular parámetros si es necesario
    if (!empty($month)) {
        $types .= 's'; // string
        $params[] = $month;
    }

    if (!empty($day)) {
        $types .= 'i'; // integer
        $params[] = $day;
    }

    if (!empty($year)) {
        $types .= 'i'; // integer
        $params[] = $year;
    }

    // Vincular los parámetros de manera dinámica
    if ($types) {
        $stmt->bind_param($types, ...$params);
    }

    // Ejecutar la consulta
    $stmt->execute();
    $result = $stmt->get_result();

    // Verificar si se obtuvieron resultados
    if ($result->num_rows > 0) {
        $rows = [];
        $frequency = array_fill(1, 38, 0); // Inicializar un array para contar los números del 01 al 38

        // Recorrer los resultados y calcular la frecuencia de cada número
        while ($row = $result->fetch_assoc()) {
            $rows[] = $row;
            for ($i = 1; $i <= 6; $i++) {
                $col = sprintf('%02d', $i); // Convertir a formato 01, 02, etc.
                if (isset($row[$col])) {
                    $frequency[$row[$col]]++;
                }
            }
        }

        // Ordenar números por frecuencia (de mayor a menor)
        arsort($frequency);

        // Determinar el segundo y tercer número más jugado
        $maxFrequency = max($frequency);
        $secondMax = max(array_diff($frequency, [$maxFrequency]));
        $thirdMax = max(array_diff($frequency, [$maxFrequency, $secondMax]));

        // Mostrar los resultados en una tabla
        echo "<div class='card'>";
        echo "<div class='card-header bg-primary text-white'>
                <h4 class='mb-0'>Resultados</h4>
              </div>";
        echo "<div class='card-body'>";
        echo "<table class='table table-striped table-hover table-bordered'>";
        echo "<thead>
                <tr>
                    <th>ID</th>
                    <th>Mes</th>
                    <th>Día</th>
                    <th>01</th>
                    <th>02</th>
                    <th>03</th>
                    <th>04</th>
                    <th>05</th>
                    <th>06</th>
                </tr>
              </thead>";
        echo "<tbody>";

        // Recorrer los resultados y mostrar los números con su color correspondiente
        foreach ($rows as $row) {
            echo "<tr>
                    <td>{$row['id']}</td>
                    <td>{$row['mes']}</td>
                    <td>{$row['dia']}</td>";
            for ($i = 1; $i <= 6; $i++) {
                $col = sprintf('%02d', $i);
                $value = $row[$col];

                // Asignar colores según la frecuencia del número
                if ($frequency[$value] == 0) {
                    $color = '#f06292'; // Rosado para los números no jugados
                    $circleBackground = '#f06292'; // Fondo del círculo rosado
                    $boxBackground = '#f48fb1'; // Fondo de la caja rosado claro
                } elseif ($frequency[$value] == $maxFrequency) {
                    $color = '#28a745'; // Verde para el más jugado
                    $circleBackground = '#218838'; // Fondo más oscuro del círculo verde
                    $boxBackground = '#66bb6a'; // Fondo de la caja verde claro
                } elseif ($frequency[$value] == $secondMax) {
                    $color = '#ffc107'; // Amarillo para el segundo más jugado
                    $circleBackground = '#e0a800'; // Fondo más oscuro del círculo amarillo
                    $boxBackground = '#ffca28'; // Fondo de la caja amarillo claro
                } elseif ($frequency[$value] == $thirdMax) {
                    $color = '#0d33b3'; // Azul para el tercer más jugado
                    $circleBackground = '#092a69'; // Fondo más oscuro del círculo azul
                    $boxBackground = '#3f51b5'; // Fondo de la caja azul claro
                } else {
                    $color = 'rgba(108, 117, 125, 0.6)'; // Gris con transparencia
                    $circleBackground = 'rgba(108, 117, 125, 0.8)'; // Fondo más oscuro del círculo gris
                    $boxBackground = 'rgba(108, 117, 125, 0.2)'; // Fondo de la caja gris claro
                }

                echo "<td style='background-color: $boxBackground; color: white;'>
                        <span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: $circleBackground; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$value</span>
                    </td>";
            }
            echo "</tr>";
        }

        echo "</tbody></table>";
        echo "</div>";
        echo "</div>";

        // Mostrar las cajas de números más jugados, segundo más jugado, etc.
        echo "<div class='row mt-4'>";

        // Caja para el número más jugado
        echo "<div class='col-md-3'>
                <div class='card'>
                    <div class='card-header bg-success text-white'>
                        <h5 class='card-title'>Número más jugado</h5>
                    </div>
                    <div class='card-body' style='background-color: #66bb6a;'>
                        <div class='count' style='font-size: 40px; font-weight: bold;'>$maxFrequency</div>
                        <div class='count_bottom' style='background-color: #28a745; color: white; padding: 5px; border-radius: 5px;' >
                            Número: ";
                        foreach ($frequency as $number => $freq) {
                            if ($freq == $maxFrequency) {
                                echo "<span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #6c757d; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$number</span>";
                            }
                        }
        echo "</div>
                    </div>
                </div>
            </div>";

        // Segundo más jugado
        echo "<div class='col-md-3'>
                <div class='card'>
                    <div class='card-header bg-warning text-dark'>
                        <h5 class='card-title'>Segundo más jugado</h5>
                    </div>
                    <div class='card-body' style='background-color: #ffca28;'>
                        <div class='count' style='font-size: 40px; font-weight: bold;'>$secondMax</div>
                        <div class='count_bottom' style='background-color: #ffc107; color: white; padding: 5px; border-radius: 5px;' >
                            Número: ";
                        foreach ($frequency as $number => $freq) {
                            if ($freq == $secondMax) {
                                echo "<span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #6c757d; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$number</span>";
                            }
                        }
        echo "</div>
                    </div>
                </div>
            </div>";

        // Tercer más jugado
        echo "<div class='col-md-3'>
                <div class='card'>
                    <div class='card-header bg-primary text-white'>
                        <h5 class='card-title'>Tercer más jugado</h5>
                    </div>
                    <div class='card-body' style='background-color: #3f51b5;'>
                        <div class='count' style='font-size: 40px; font-weight: bold;'>$thirdMax</div>
                        <div class='count_bottom' style='background-color: #0d33b3; color: white; padding: 5px; border-radius: 5px;' >
                            Número: ";
                        foreach ($frequency as $number => $freq) {
                            if ($freq == $thirdMax) {
                                echo "<span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #6c757d; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$number</span>";
                            }
                        }
        echo "</div>
                    </div>
                </div>
            </div>";

        // Caja rosada para los números no jugados
        echo "<div class='col-md-3'>
                <div class='card'>
                    <div class='card-header bg-pink text-white'>
                        <h5 class='card-title'>Números no jugados</h5>
                    </div>
                    <div class='card-body' style='background-color: #f48fb1;'>
                        <div class='count_bottom' style='background-color: #f06292; color: white; padding: 5px; border-radius: 5px;' >
                            Número: ";
                        foreach ($frequency as $number => $freq) {
                            if ($freq == 0) {
                                echo "<span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #f06292; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$number</span>";
                            }
                        }
        echo "</div>
                    </div>
                </div>
            </div>";

        // Caja morada con los números jugados en las cajas verde, amarillo y azul
        echo "<div class='col-md-3'>
                <div class='card'>
                    <div class='card-header bg-purple text-white'>
                        <h5 class='card-title'>Números Jugados</h5>
                    </div>
                    <div class='card-body' style='background-color: #9c27b0;'>
                        <div class='count_bottom' style='background-color: #8e24aa; color: white; padding: 5px; border-radius: 5px;' >
                            Números: ";
                        $highlightedNumbers = [];

                        // Extraer los números más jugados
                        foreach ($frequency as $number => $freq) {
                            if ($freq == $maxFrequency || $freq == $secondMax || $freq == $thirdMax) {
                                $highlightedNumbers[] = $number;
                            }
                        }

                        // Mostrar los números destacados
                        foreach ($highlightedNumbers as $number) {
                            echo "<span class='number-circle' style='display: inline-block; margin: 5px; width: 30px; height: 30px; background-color: #7b1fa2; color: white; text-align: center; line-height: 30px; border-radius: 50%;'>$number</span>";
                        }
        echo "</div>
                    </div>
                </div>
            </div>";

        echo "</div>"; // Cierra la fila de las cajas

    } else {
        echo "<div class='alert alert-info'>No se encontraron resultados.</div>";
    }

    $stmt->close();
} else {
    echo "<div class='alert alert-danger'>Error al preparar la consulta: " . $conn->error . "</div>";
}

$conn->close();
?>
