LANIA_Proyecto/models/Catalogos.php

126 lines
3.3 KiB
PHP

<?php
require_once __DIR__ . '/../controllers/Database.php';
class Catalogos{
private $conn;
public function __construct() {
$this->conn = Database::getInstance();
}
public function obtenerGeneros(){
$sql = "SELECT id_genero, descripcion FROM genero";
$result = $this->conn->query($sql);
$generos = [];
while($row = $result->fetch_assoc()){
$generos[] = $row;
}
return $generos;
}
public function obtenerRangosEdad(){
$sql = "SELECT id_rango_edad, descripcion FROM rango_edad";
$result = $this->conn->query($sql);
$rangos = [];
while($row = $result->fetch_assoc()){
$rangos[] = $row;
}
return $rangos;
}
public function obtenerTiposIdentificacion(){
$sql = "SELECT id_tipo_id, descripcion FROM tipo_identificacion ORDER BY descripcion";
$result = $this->conn->query($sql);
$tipos = [];
while($row = $result->fetch_assoc()){
$tipos[] = $row;
}
return $tipos;
}
public function obtenerNivelesEstudio(){
$sql = "SELECT id_nivel, descripcion FROM nivel_estudio";
$result = $this->conn->query($sql);
$niveles = [];
while($row = $result->fetch_assoc()){
$niveles[] = $row;
}
return $niveles;
}
public function obtenerGiros(){
$sql = "SELECT id_giro, descripcion FROM giro ORDER BY descripcion";
$result = $this->conn->query($sql);
$giros = [];
while($row = $result->fetch_assoc()){
$giros[] = $row;
}
return $giros;
}
public function obtenerExamenes(){
$sql = "SELECT id_examen, nombre_examen FROM examen ORDER BY nombre_examen";
$result = $this->conn->query($sql);
$examenes = [];
while($row = $result->fetch_assoc()){
$examenes[] = $row;
}
return $examenes;
}
public function obtenerPaises(){
$sql = "SELECT int as id, nombre FROM paises ORDER BY nombre";
$result = $this->conn->query($sql);
$paises = [];
while($row = $result->fetch_assoc()){
$paises[] = $row;
}
return $paises;
}
public function obtenerInfoCodigoPostal($codigoPostal) {
$sql = "
SELECT
e.nombre AS id_estado,
m.nombre AS id_municipio,
c.nombre AS id_colonia
FROM colonias c
JOIN municipios m ON c.municipio = m.id
JOIN estados e ON m.estado = e.id
WHERE c.codigo_postal = ?
";
$stmt = $this->conn->prepare($sql);
if ($stmt === false) {
throw new Exception("Error en la preparación de la consulta: " . $this->conn->error);
}
$stmt->bind_param("i", $codigoPostal);
if (!$stmt->execute()) {
throw new Exception("Error al ejecutar la consulta CP: " . $stmt->error);
}
$result = $stmt->get_result();
$info = [];
while ($row = $result->fetch_assoc()) {
$info[] = $row;
}
$stmt->close();
return $info;
}
}
?>