LANIA_Proyecto/php/graficos.php

294 lines
7.7 KiB
PHP

<?php
require_once './conexionBd.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input = json_decode(file_get_contents('php://input'), true);
$tipoConsulta = $input['tipoConsulta'] ?? '';
$graficos = new Graficos();
switch ($tipoConsulta) {
case 'Femenino':
$cantidad = $graficos->obtenerGeneroFemenino();
break;
case 'Masculino':
$cantidad = $graficos->obtenerGeneroMasculino();
break;
case 'Prefiero no decirlo':
$cantidad = $graficos->obtenerGeneroNoDefinido();
break;
case 'Menor de 18 años':
$cantidad = $graficos->obtenerEdadMenor18();
break;
case '18 a 24 años':
$cantidad = $graficos->obtenerEdad1824();
break;
case '25 a 34 años':
$cantidad = $graficos->obtenerEdad2434();
break;
case '35 a 44 años':
$cantidad = $graficos->obtenerEdad3544();
break;
case '45 a 54 años':
$cantidad = $graficos->obtenerEdad4554();
break;
case '55 a 64 años':
$cantidad = $graficos->obtenerEdad5564();
break;
case '65 años o más':
$cantidad = $graficos->obtenerEdad65oMas();
break;
case 'Estados':
$cantidad = $graficos->obtenerEstados();
echo json_encode($cantidad); // Devolver directamente el array de estados
exit; // Terminar la ejecucion aqui
case 'Examenes':
$cantidad = $graficos->obtenerExamenes();
echo json_encode($cantidad); // Devolver directamente el array de examenes
exit; // Terminar la ejecucion aqui
default:
$cantidad = 0;
}
echo json_encode(['cantidad' => $cantidad]);
}
class Graficos{
private $conexion;
protected $db;
public function __construct() {
$this->conexion = new Conexion();
$this->db = $this->conexion->conectar();
}
public function obtenerGeneroFemenino() {
$query = $this->db->prepare("SELECT COUNT(*) AS Femenino FROM candidato WHERE id_genero = 2 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['Femenino'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerGeneroMasculino() {
$query = $this->db->prepare("SELECT COUNT(*) AS Maculino FROM candidato WHERE id_genero = 1 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['Maculino'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerGeneroNoDefinido() {
$query = $this->db->prepare("SELECT COUNT(*) AS NoDefinido FROM candidato WHERE id_genero = 3 ");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['NoDefinido'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdadMenor18() {
$query = $this->db->prepare("SELECT COUNT(*) AS menorEdad FROM candidato WHERE id_rango_edad = 1");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['menorEdad'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad1824() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad1824 FROM candidato WHERE id_rango_edad = 2");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad1824'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad2434() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad2434 FROM candidato WHERE id_rango_edad = 3");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad2434'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad3544() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad3544 FROM candidato WHERE id_rango_edad = 4");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad3544'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad4554() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad4554 FROM candidato WHERE id_rango_edad = 5");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad4554'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad5564() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad5564 FROM candidato WHERE id_rango_edad = 6");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad5564'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEdad65oMas() {
$query = $this->db->prepare("SELECT COUNT(*) AS edad65oMas FROM candidato WHERE id_rango_edad = 7");
$query->execute();
$resultado = $query->get_result();
$output = "0";
if($resultado->num_rows > 0) {
while ($data = $resultado->fetch_assoc()) {
$output= $data['edad65oMas'];
}
}
$query->close();
$this->db->close();
return $output;
}
public function obtenerEstados() {
try {
$query = $this->db->prepare("
SELECT estados.nombre AS estado, COUNT(*) AS cantidad
FROM estados
INNER JOIN info_candidatos ON info_candidatos.id_estado = estados.id
GROUP BY estados.nombre
ORDER BY estados.nombre
");
$query->execute();
$resultado = $query->get_result();
$estados = [];
while ($data = $resultado->fetch_assoc()) {
$estados[] = $data;
}
$query->close();
error_log(json_encode($estados));
return $estados;
} catch (Exception $e) {
error_log("Error al obtener los estados: " . $e->getMessage());
return [];
}
}
public function obtenerExamenes() {
try {
$query = $this->db->prepare("SELECT nombre_examen AS examen , COUNT(*) AS cantidad
FROM examen
INNER JOIN candidato ON candidato.id_examen = examen.id_examen
GROUP BY nombre_examen
ORDER BY nombre_examen;
");
$query->execute();
$resultado = $query->get_result();
$examenes = [];
while ($data = $resultado->fetch_assoc()) {
$examenes[] = $data;
}
$query->close();
error_log(json_encode($examenes));
return $examenes;
} catch (Exception $e) {
error_log("Error al obtener los examenes: " . $e->getMessage());
return [];
}
}
}
?>