diff --git a/carpeta_temporal/script_base_datos/lania_cc.sql b/carpeta_temporal/script_base_datos/lania_cc.sql index a0d24a0..bc0dee3 100644 --- a/carpeta_temporal/script_base_datos/lania_cc.sql +++ b/carpeta_temporal/script_base_datos/lania_cc.sql @@ -173,4 +173,11 @@ INSERT INTO examen (id_examen, nombre_examen) VALUES (15, 'Otros'); -- Depues de importar la bd de inegi -insert into paises(nombre) values('Otro'); \ No newline at end of file +insert into paises(nombre) values('Otro'); + +-- Insercion de un candidato de prueba: +INSERT INTO candidato (nombres, primer_apellido, segundo_apellido, correo, telefono, id_examen, id_tipo_id, id_rango_edad, id_genero) VALUES +('Juan', 'Pérez', 'Gómez', 'correo@gmail.com', '1234567890', 1, 1, 2, 1); + +INSERT INTO info_candidatos (id_candidato, id_pais, id_estado, id_municipio, id_colonia, id_nivel, id_giro, nombre_empresa_institucion, motivo_examen, calificacion_servicio, consentimiento_pub) VALUES +(1, 1, 1, 1001, 10011, 5, 1, 'Empresa de Prueba', 'Motivo de prueba', 5, 1); \ No newline at end of file diff --git a/controllers/CandidatoController.php b/controllers/CandidatoController.php new file mode 100644 index 0000000..8e004a7 --- /dev/null +++ b/controllers/CandidatoController.php @@ -0,0 +1,72 @@ +<?php + +require_once __DIR__ . '/../models/Candidato.php'; + +class CandidatoController { + private static $candidatoModel = null; + + public static function inicializar() { + if (self::$candidatoModel === null) { + self::$candidatoModel = new Candidato(); + } + } + + public static function regitrarCandidato() { + + $nombres = $_POST['nombres']; + $primer_apellido = $_POST['primer_apellido']; + $segundo_apellido = $_POST['segundo_apellido']; + $correo = $_POST['correo']; + $telefono = $_POST['telefono']; + $id_examen = $_POST['id_examen']; + $id_tipo_id = $_POST['id_tipo_id']; + $id_rango_edad = $_POST['id_rango_edad']; + $id_genero = $_POST['id_genero']; + + self::$candidatoModel->registrarCandidato( + $nombres, + $primer_apellido, + $segundo_apellido, + $correo, + $telefono, + $id_examen, + $id_tipo_id, + $id_rango_edad, + $id_genero + ); + } + + + public static function registrarInfoCandidato() { + $id_candidato = $_POST['id_candidato']; + $id_pais = $_POST['id_pais']; + $id_estado = $_POST['id_estado']; + $id_municipio = $_POST['id_municipio']; + $id_colonia = $_POST['id_colonia']; + $id_nivel = $_POST['id_nivel']; + $id_giro = $_POST['id_giro']; + $nombre_empresa_institucion = $_POST['nombre_empresa_institucion']; + $motivo_examen = $_POST['motivo_examen']; + $calificacion_servicio = $_POST['calificacion_servicio']; + $consentimiento_pub = $_POST['consentimiento_pub']; + + self::$candidatoModel->registrarInfoCandidatos( + $id_candidato, + $id_pais, + $id_estado, + $id_municipio, + $id_colonia, + $id_nivel, + $id_giro, + $nombre_empresa_institucion, + $motivo_examen, + $calificacion_servicio, + $consentimiento_pub + ); + } +} + +// Instanciar el modelo al cargar el controlador +CandidatoController::inicializar(); + +?> \ No newline at end of file diff --git a/controllers/registrarCandidato.php b/controllers/registrarCandidato.php new file mode 100644 index 0000000..245fe4d --- /dev/null +++ b/controllers/registrarCandidato.php @@ -0,0 +1,13 @@ +<?php +require_once __DIR__ . '/CandidatoController.php'; + +// Manejar la solicitud POST para registrar un candidato +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + // Llamar al controlador de candidatos para registrar un nuevo candidato + CandidadatoController::registrarCandidato(); + + // Redirigir a la página de inicio después de registrar el candidato + header('Location: inicio.html'); +} + +?> \ No newline at end of file diff --git a/controllers/registrarInfoCandidato.php b/controllers/registrarInfoCandidato.php new file mode 100644 index 0000000..08cb9c3 --- /dev/null +++ b/controllers/registrarInfoCandidato.php @@ -0,0 +1,14 @@ +<?php + +require_once __DIR__ . '/CandidatoController.php'; + +// Manejar la solicitud POST para registrar información de un candidato +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + // Llamar al controlador de candidatos para registrar un nuevo candidato + CandidadatoController::registrarInfoCandidato(); + + // Redirigir a la página de inicio después de registrar el candidato + header('Location: inicio.html'); +} + +?> \ No newline at end of file diff --git a/models/Candidato.php b/models/Candidato.php index 6292641..b468d5f 100644 --- a/models/Candidato.php +++ b/models/Candidato.php @@ -24,7 +24,7 @@ class Candidato { * @param int $calificacion_servicio Calificación del servicio. * @param int $consentimiento_pub Consentimiento para la publicación de datos. */ - public function insertarInfoCandidatos( + public function registrarInfoCandidatos( $id_candidato, $id_pais, $id_estado, @@ -65,7 +65,74 @@ class Candidato { $stmt->close(); } + public function registrarCandidato( + $nombres, + $primer_apellido, + $segundo_apellido, + $correo, + $telefono, + $id_examen, + $id_tipo_id, + $id_rango_edad, + $id_genero + ) { + $sql = "INSERT INTO candidato (nombres, primer_apellido, segundo_apellido, correo, telefono, id_examen, id_tipo_id, id_rango_edad, id_genero) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; + $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( + "sssssiiii", + $nombres, + $primer_apellido, + $segundo_apellido, + $correo, + $telefono, + $id_examen, + $id_tipo_id, + $id_rango_edad, + $id_genero + ); + if (!$stmt->execute()) { + throw new Exception("Error al insertar candidato: " . $stmt->error); + } + //$insertId = $stmt->insert_id; + $stmt->close(); + //return $insertId; + } + + public function obtenerCandidatoPorId($id_candidato) { + $sql = "SELECT * FROM candidato WHERE id_candidato = ?"; + $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", $id_candidato); + if (!$stmt->execute()) { + throw new Exception("Error al ejecutar la consulta: " . $stmt->error); + } + $result = $stmt->get_result(); + $candidato = $result->fetch_assoc(); + $stmt->close(); + return $candidato; + } + + public function obtenerInfoCandidatoPorId($id_candidato) { + $sql = "SELECT * FROM info_candidatos WHERE id_candidato = ?"; + $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", $id_candidato); + if (!$stmt->execute()) { + throw new Exception("Error al ejecutar la consulta: " . $stmt->error); + } + $result = $stmt->get_result(); + $info = $result->fetch_assoc(); + $stmt->close(); + return $info; + } + } - ?> \ No newline at end of file diff --git a/models/Catalogos.php b/models/Catalogos.php index cb29367..c33f2ff 100644 --- a/models/Catalogos.php +++ b/models/Catalogos.php @@ -93,6 +93,34 @@ class Catalogos{ 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; + } + } ?> \ No newline at end of file diff --git a/test.php b/test.php new file mode 100644 index 0000000..2514088 --- /dev/null +++ b/test.php @@ -0,0 +1,14 @@ +<?php + +//require_once __DIR__ . "/controllers/usuarioController.php"; + +// UsuarioController::registrarUsuario("root", "root"); + + +require_once __DIR__ . '/models/Catalogos.php'; +$catalogoModel = new Catalogos(); +$array = $catalogoModel->obtenerGeneros(); + +// Pintar arraycompleto en bruto de la variable $arrayInfoCodigoPostal +print_r($array); +?> \ No newline at end of file diff --git a/testRegistroUsuario.php b/testRegistroUsuario.php deleted file mode 100644 index b10fde9..0000000 --- a/testRegistroUsuario.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php - -require_once __DIR__ . "/controllers/usuarioController.php"; - -// UsuarioController::registrarUsuario("root", "root"); - -?> \ No newline at end of file