actualizar datos con imagen en base de datos con pdo (parte 2)

Esta segunda parte de actualizar datos con imagens, vamos a explicar como se atualiza la imagen o foto y el curriculum vitae o sea un archivo pdf, eliminando el antiguo

En la entrada actualizar datos con imagen en base de datos con pdo trate de explicar e he dejado el codigo de como se hace, de como rellenar los campos del formulario, para podermos modificarlos

en esta entrada voy a explicar como se ctualizan los datos en la base de datos, ademas de podermos cambiar la foto o curriculum de um empleado

La tabla que estamos trabajando es una tabla de empleados, onde podemos dar de alta a un empleado con una foto, un curriculum vitae ademas de le podermos asignar un puesto de trabajo

...

Recebir datos por methodo POST

Lo primero es la conexion a la base de datos, o sea tenemos que conectarnos a la base de datos

Conexion en PDO con PHP-MySQL

seguidamente comprovar que recebimos los datos por metodo post y que los campos no vengam vacios

Caso las dos condicioes anteriores esteen completas, vamos a recopilar lo que viene por post en variables

lo haremos por tres etapas, porque tenemos dos archivos tipo file

ademas estos dos archivos hay que borrar el archivo existente e crear un archivo nuevo

asi que recopilamos los datos de los input tipo text, fecha e el select

despues de que tengamos los datos en variables, hacemos una consulta de UPDATE e se cambiaran los campos afectados por el cambio


Codigo del ejemplo

        if ($_POST) { //Validamos que hay un POST
            // print_r($_POST); //Verificamos los datos que llegaram
            // print_r($_FILES);
        
        
            if (empty($_POST['txtNombre'])) {
                $alert = "Tiene de rellenar los campos";
            } else {
                //Ponemos en variables lo que viene en POST
                $txtId = $_POST['txtId'];
                $nombres = $_POST['txtNombre']; //Variable que viene del POST
                $prApellido = $_POST['txtApellido'];
                $sgApellido = $_POST['txtSegApellido'];
        
                $puesto = $_POST['txtPuesto'];
                $fecha = $_POST['fecha'];
        
                $sql = ('UPDATE tbl_empleados SET 
                nombres=:nombres,primeroApellido=:primeroApellido,
                segundoApellido=:segundoApellido,
                idPuesto=:idPuesto,fecha=:fecha
                 WHERE idEmpleado=:id');
                $stmt = $pdo->prepare($sql); //Preparacion de la sentencia
                $stmt->bindParam(':id', $txtId);
                $stmt->bindParam(':nombres', $nombres);
                $stmt->bindParam(':primeroApellido', $prApellido);
                $stmt->bindParam(':segundoApellido', $sgApellido);
                $stmt->bindParam(':idPuesto', $puesto);
                $stmt->bindParam(':fecha', $fecha);
                //Valores a insertar
                $stmt->execute(); //execucion de la consulra
    

La primera parte ya la tenemos, nos falta ahora cambiar la imagen anterior por otra borrando la anterior, para que no quede basura

Les dejo el codigo para que se entienda mejor

        $foto = (isset($_FILES['foto']['name']) ? $_FILES['foto']['name'] : '');
        // $foto = $_FILES['foto']['name'];
        //Adjuntar la foto
        $fecha_foto = new DateTime(); //creamos una fecha para cambiar el nombre da foto
        $nombre_foto = ($foto != '') ? $fecha_foto->getTimestamp() . '_' . $_FILES['foto']['name'] : '';
        $tmp_foto = $_FILES['foto']['tmp_name'];
        //moviendo el archivo a la carpeta (Imagens)
        if ($tmp_foto != '') {
            move_uploaded_file($tmp_foto, "./Imagens/" . $nombre_foto);

            $sql = ("SELECT foto FROM tbl_empleados WHERE idEmpleado=:id"); //Creamos la consulta de la tabla
            $stmt = $pdo->prepare($sql); //Preparamos esa consulta
            $stmt->bindParam(':id', $txtId);
            $stmt->execute(); //La ejecutamos
            $registro = $stmt->fetch(PDO::FETCH_LAZY); //Creamos una variable con todos los registros


            if (isset($registro['foto']) && $registro['foto'] != '') {
                if (file_exists("./Imagens/" . $registro['foto'])) {
                    unlink("./Imagens/" . $registro['foto']); //Borra este archivo
                }
            }

            $sql = ('UPDATE tbl_empleados SET 
           foto=:foto
           WHERE idEmpleado=:id');
            $stmt = $pdo->prepare($sql); //Preparacion de la sentencia
            //cambiamos el nombre del archivo a grabar
            $stmt->bindParam(':id', $txtId);
            $stmt->bindParam(':foto', $nombre_foto);
            $stmt->execute(); //execucion de la consulra
        }

    

debajo de este codigo pondremos el codigo para borrar el curriculum vitae anterior y poner el nuevo, pues el codigo es lo mismo que el de la foto con la diferencia de que en ves de foto ponemos cv







Publicar un comentario

0 Comentarios