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
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
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias