Translate

24 nov 2014

Aprendiendo PHP [3]

En la ultima entrada aprendimos a programar la inserción de nuevos clientes y a sacar todos los registros de nuestra tabla en la pantalla del navegador. Ahora, lo que vamos a hacer es generar un nuevo enlace que nos permita eliminar registros de nuestra base de datos, como clientes que se hayan dado de baja.

Para ello, tendremos que añadir un nuevo campo a nuestra tabla de Registros.php que contenga un enlace por cada usuario, y cuando pinchemos dicho enlace, nos borre dicho cliente y, además, nos lleve a una nueva página llamada Borrar.php donde nos volverá a mostrar todos los clientes que tenemos y nos vuelva a dar la opción de seguir eliminándolos. Y en este punto podrán surgir dudas como: ¿por qué crear una nueva página php en lugar de volver a llamarse a sí misma? Porque en el futuro haremos modificaciones sobre Registros.php, de forma que podamos realizar más operaciones sobre los clientes, y cada operación nos lleve a un nuevo php donde nos permita seguir ejecutando dicha operación.

Bueno, una vez ha quedado toda la teoría dicha, pasemos a la práctica. Lo primero es añadir el enlace en la tabla:

Simplemente añadimos el nuevo campo Eliminar a nuestra tabla y, dentro del bucle, añadimos un nuevo campo con un enlace que nos llevará al fichero BorrarRegistros.php, además, le pasará una variable llamada codigoCl cuyo contenido será el código del cliente actual en ese momento del bucle. Esto, si usamos el método GET de nuestro formulario en la web principal, lo entenderemos mejor, al ver cómo se pasan variables/parámetros de un archivo a otro. Lo ideal claro está es que todo vaya mediante el método POST.

Ahora tendremos que crear nuestra nueva página web: BorrarRegistros.php. Al igual que Registros.php, crearemos una estructura en HTML y comenzaremos con unas cuantas líneas de código en php:


Finalmente, BorrarRegistros.php terminaría quedando de la siguiente forma, donde realizamos la conexión gracias a Conectar.php, recogemos el codigoCl que le hemos pasado en el bucle de Registros.php y ejecutamos las consultas SQL para eliminar el registro cuando el código coincida y posteriormente, con el registro eliminado, nos vuelva a hacer un select. El resto de la página web sería literalmente, igual que la anterior: realizar un bucle en base a las líneas que contiene la tabla y poner un enlace al final. Además, damos la posibilidad de volver a eliminar registros.

No obstante, si lo dejamos así tal cual, en principio, no vamos a tener problemas. Pero si, por casualidades de la vida, ese cliente ha comprado algo y se encuentra como clave foránea en la tabla de compras no podremos eliminarlo, y es aquí donde ya tenemos que tener en cuenta nuestro diseño de la base de datos, por tanto, añadimos el siguiente código:


Suponiendo por supuesto que la tabla de las compras tiene la siguiente estructura:


Donde codigoPr es el código del producto vendido a un determinado cliente. Ambas columnas serán claves foráneas de las respectivas tablas, donde son claves primarias.

Hecho esto, deberíamos tener lo siguiente tras insertar un nuevo registro en la tabla de clientes:



Y si intentamos eliminar el registro número 69 (menudo numerito ha tenido que tocar xD), iremos a la siguiente pantalla:



Donde podemos seguir eliminando registros a placer y además nos da la opción de volver a la página principal para volver a insertar otro nuevo. Y con esto ya estaría la parte de la sentencia DELETE completa.

No hay comentarios: