91 lines
3.1 KiB
PHP
91 lines
3.1 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once 'database/database.php';
|
|
|
|
$data = [];
|
|
|
|
// 1. Datos de Género
|
|
$queryGenero = "SELECT genero, COUNT(*) AS count FROM entrada GROUP BY genero";
|
|
$resultGenero = $conexion->query($queryGenero);
|
|
$generoData = [];
|
|
$totalGenero = 0;
|
|
while ($row = $resultGenero->fetch_assoc()) {
|
|
$generoData[$row['genero']] = (int)$row['count'];
|
|
$totalGenero += (int)$row['count'];
|
|
}
|
|
|
|
$generoPercentages = [];
|
|
foreach ($generoData as $genero => $count) {
|
|
$generoPercentages[$genero] = ($totalGenero > 0) ? round(($count / $totalGenero) * 100, 2) : 0;
|
|
}
|
|
$data['genero'] = $generoPercentages;
|
|
|
|
// 2. Datos de Edades
|
|
$queryEdad = "SELECT edad, COUNT(*) AS count FROM entrada GROUP BY edad ORDER BY
|
|
CASE
|
|
WHEN edad = 'menor' THEN 1
|
|
WHEN edad = '18-21' THEN 2
|
|
WHEN edad = '22-25' THEN 3
|
|
WHEN edad = '26-30' THEN 4
|
|
WHEN edad = '31-35' THEN 5
|
|
WHEN edad = '36-40' THEN 6
|
|
WHEN edad = '41-45' THEN 7
|
|
WHEN edad = '46-50' THEN 8
|
|
WHEN edad = '51-55' THEN 9
|
|
WHEN edad = '56-60' THEN 10
|
|
WHEN edad = 'mayor' THEN 11
|
|
ELSE 12
|
|
END";
|
|
$resultEdad = $conexion->query($queryEdad);
|
|
$edadData = [];
|
|
$totalEdad = 0;
|
|
while ($row = $resultEdad->fetch_assoc()) {
|
|
$edadData[$row['edad']] = (int)$row['count'];
|
|
$totalEdad += (int)$row['count'];
|
|
}
|
|
|
|
$edadPercentages = [];
|
|
foreach ($edadData as $edad => $count) {
|
|
$edadPercentages[$edad] = ($totalEdad > 0) ? round(($count / $totalEdad) * 100, 2) : 0;
|
|
}
|
|
$data['edad'] = $edadPercentages;
|
|
|
|
// Gráfica de barra de estados que más nos visitan
|
|
$queryEstados = "SELECT estado_procedencia, COUNT(*) AS count FROM entrada GROUP BY estado_procedencia ORDER BY count DESC LIMIT 5";
|
|
$resultEstados = $conexion->query($queryEstados);
|
|
$estadosData = [];
|
|
while ($row = $resultEstados->fetch_assoc()) {
|
|
$estadosData[$row['estado_procedencia']] = (int)$row['count'];
|
|
}
|
|
$data['estados'] = $estadosData;
|
|
|
|
|
|
// Gráfica de proveedores de exámenes que más hacen examen o colocan en el formulario
|
|
$queryProveedores = "SELECT empresa, COUNT(*) AS count FROM entrada GROUP BY empresa ORDER BY count DESC LIMIT 5";
|
|
$resultProveedores = $conexion->query($queryProveedores);
|
|
$proveedoresData = [];
|
|
while ($row = $resultProveedores->fetch_assoc()) {
|
|
$proveedoresData[$row['empresa']] = (int)$row['count'];
|
|
}
|
|
$data['proveedores'] = $proveedoresData;
|
|
|
|
|
|
// 5. Cuantas personas y datos del mes pasado (filtrado por fecha a fecha)
|
|
$fechaActual = date('Y-m-d');
|
|
$fechaMesPasadoInicio = date('Y-m-01', strtotime('last month'));
|
|
$fechaMesPasadoFin = date('Y-m-t', strtotime('last month'));
|
|
|
|
$queryMesPasado = "SELECT DATE(fecha) AS dia, COUNT(*) AS count FROM entrada
|
|
WHERE fecha BETWEEN '$fechaMesPasadoInicio' AND '$fechaMesPasadoFin'
|
|
GROUP BY DATE(fecha) ORDER BY DATE(fecha) ASC";
|
|
$resultMesPasado = $conexion->query($queryMesPasado);
|
|
$mesPasadoData = [];
|
|
while ($row = $resultMesPasado->fetch_assoc()) {
|
|
$mesPasadoData[$row['dia']] = (int)$row['count'];
|
|
}
|
|
$data['mes_pasado'] = $mesPasadoData;
|
|
|
|
|
|
echo json_encode($data);
|
|
$conexion->close();
|
|
?>
|