En entradas anteriores, explique como se inserta una imagen en la base de datos, como se edita una imagen desde la base de datos, viendo esa imagen en el listado
En esta entrada voy tentar explicar como se borra dicha imagen
El tema del borrado, no es simplesmente borrar los datos de la base de datos ya que eso se hace con un simple DELETE pero como tenemos las imagenes en una carpeta a parte hay que borrar esa imagen en el fisico tambien, o sea hay que borrar el archivo de la imagen
...
Consulta del registro
Lo primero que debes hacer es consultar el registro en la base de datos, e lo hacemos con una consulta
En el formulario de la lista debemos tener un buton para hacer el borrado de los registro
Cuando hacemos clic sobre ese buton enviamos un ID del registro a borrar a alguna pagina que indicamos en la ruta del buton
recogemos ese ID y tenendolo como referencia hacemos la consulta de ese registro a la base de datos
Ejemplo de la consulta
if (isset($_GET['txtId'])) { //print_r($_GET['txtId']); $id = (isset($_GET['txtId'])) ? $_GET['txtId'] : ""; //Buscamos la imagen a borrar $sql = ("SELECT imagen FROM tbl_portafolio WHERE id=:id"); $stmt = $pdo->prepare($sql); $stmt->bindParam('id', $id); $stmt->execute(); $registro = $stmt->fetch(PDO::FETCH_LAZY); // print_r($registro); //Condicion de si hay o no imagen if (isset($registro['imagen'])) { //Perguntamos si ese fichero existe if (file_exists("./../../../assets/img/portfolio/" . $registro['imagen'])) { //Borramos fisicamente la imagen unlink("./../../../assets/img/portfolio/" . $registro['imagen']); } }
observe el codigo
Lo primero perguntamos si tenemos un GET con el valor del ID a consultar
si lo tenemos hacemos la consulta de la imagen en dicho registro
Con una variable $registro guardamos el registro
Al final del codigo perguntamos si hay un fichero con ese nombre
if (file_exists("./../../../assets/img/portfolio/" . $registro['imagen']))
si lo hay lo borramos con el atributo unlink
unlink("./../../../assets/img/portfolio/" . $registro['imagen']);
Nota: la ruta del archivo a eliminar tiene que ser asinalada, asi como el nombre del fichero
Eliminacion definitiva
Tenendo ya eliminado el fichero de la carpeta onde lo teniamos solo nos resta eliminar los datos de la base de datos
ejemplo del codigo
//ahora borra el registro $sql = ("DELETE FROM tbl_portafolio WHERE id=:id"); $stmt = $pdo->prepare($sql); $stmt->bindParam('id', $id); $stmt->execute();
Nunca es demasiado relembrar que cada vez que queremos hacer consultas a la base de datos, nos debemos conectar a la misma, haciendo la desconecion cuando no la necessitamos
Esa pratica evita injeciones html, e nos da mas seguranza a nuestros proyectos
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias