APRENDIENDO A DESARROLLAR UNA MATRIZ CRUD EN PHP
En este recurso vas a encontrar 2 modelos diferentes para realiazar una matriz CRUD con PHP; obseva cada uno y trata de implementar el que mejor entiendas (el modelo 1 es un diseño mas antiguo e implementa la POO y el modelo 2 es mas moderno y sencillo en su desarrollo)
Las lineas de color amarillo son suceptibles de cambio dependiendo del nombre de la base de datos, los campos y la definición de variables, tambien los nombres de los enlaces de las paginas segun el interes del desarrollador.
Las lineas de color amarillo son suceptibles de cambio dependiendo del nombre de la base de datos, los campos y la definición de variables, tambien los nombres de los enlaces de las paginas segun el interes del desarrollador.
Modelo 2 de Matriz CRUD - Básica
conexion.php <-- Este es el nombre que debe llevar el archivo
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>CONEXIÓN A BASE DE DATOS</title>
</head>
<body>
<?php
$link = mysqli_connect('localhost','root','','base_datos') or die ("Error al conectarse a la base de datos");
?>
<br>
</body>
</html>
<meta charset="utf-8">
<html>
<head>
<title>CONEXIÓN A BASE DE DATOS</title>
</head>
<body>
<?php
$link = mysqli_connect('localhost','root','','base_datos') or die ("Error al conectarse a la base de datos");
?>
<br>
</body>
</html>
_________________________________
index.php
<head>
<title>MENU MATRIZ CRUD</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>MENU DE OPCIONES</u></h2></center>
<br>
<center>
<table border="1px" align="center">
<tr>
<td align="center"><form method="get" action="crear.php">
<input type="submit" name="1" value="CREAR"></form></td>
<td align="center"><form method="get" action="leer.php">
<input type="submit" name="2" value="LEER"></form></td>
</tr>
<tr>
<td align="center"><form method="get" action="actualizar.php">
<input type="submit" name="3" value="ACTUALIZAR"></form></td>
<td align="center"><form method="get" action="eliminar.php">
<input type="submit" name="4" value="ELIMINAR"></form></td>
</tr>
<table>
</center>
</body>
</html>
<title>MENU MATRIZ CRUD</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>MENU DE OPCIONES</u></h2></center>
<br>
<center>
<table border="1px" align="center">
<tr>
<td align="center"><form method="get" action="crear.php">
<input type="submit" name="1" value="CREAR"></form></td>
<td align="center"><form method="get" action="leer.php">
<input type="submit" name="2" value="LEER"></form></td>
</tr>
<tr>
<td align="center"><form method="get" action="actualizar.php">
<input type="submit" name="3" value="ACTUALIZAR"></form></td>
<td align="center"><form method="get" action="eliminar.php">
<input type="submit" name="4" value="ELIMINAR"></form></td>
</tr>
<table>
</center>
</body>
</html>
_________________________________
crear.php
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>INGRESO DE CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>FORMULARIO DE INGRESO DE CLIENTES</u></h2></center>
<br>
<center>
<form action="" method="post">
CEDULA: <input required type="" name="ced"><br>
NOMBRE: <input type="" name="nom"><br>
EMAIL: <input type="" name="ema"><br>
SEXO:
hombre: <input checked type="radio" value="m" name="sex">
mujer: <input type="radio" value="f" name="sex"><br>
<input type="submit" />
</form>
<?php
include ("conexion.php");
if ($_POST) {
$ced = $_POST['ced'];
$nom = $_POST['nom'];
$ema = $_POST['ema'];
$sex = $_POST['sex'];
mysqli_query($link, "INSERT INTO clientes(cedula,nombre,email,sexo) VALUES ('$ced','$nom','$ema','$sex')") or die ("Error al ingresar dato");
echo "DATO GUARDADO";
}
?>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</center>
</body>
</html>
_________________________________
leer.php
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>LECTURA DE CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>TABLA DE CLIENTES INSCRITOS</u></h2></center>
<center>
<table border="1">
<tr>
<td align="center">CEDULA</td>
<td align="center">NOMBRE</td>
<td align="center">EMAIL</td>
<td align="center">SEXO</td>
</tr>
<?php
include ("conexion.php");
$consulta = mysqli_query($link, "SELECT * FROM clientes") or die ("Error en la consulta de la tabla");
while ($registro = mysqli_fetch_array($consulta)) { ?>
<tr>
<td><?php $ced = $registro['cedula'];
echo "$ced ";?></td>
<td><?php $nom = $registro['nombre'];
echo "$nom ";?></td>
<td><?php $ema = $registro['email'];
echo "$ema ";?></td>
<td><?php $sex = $registro['sexo'];
echo "$sex ";?></td>
<?php echo "<br>";?>
</tr>
<?php
}
?>
</table>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</center>
</body>
</html>
<meta charset="utf-8">
<html>
<head>
<title>LECTURA DE CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>TABLA DE CLIENTES INSCRITOS</u></h2></center>
<center>
<table border="1">
<tr>
<td align="center">CEDULA</td>
<td align="center">NOMBRE</td>
<td align="center">EMAIL</td>
<td align="center">SEXO</td>
</tr>
<?php
include ("conexion.php");
$consulta = mysqli_query($link, "SELECT * FROM clientes") or die ("Error en la consulta de la tabla");
while ($registro = mysqli_fetch_array($consulta)) { ?>
<tr>
<td><?php $ced = $registro['cedula'];
echo "$ced ";?></td>
<td><?php $nom = $registro['nombre'];
echo "$nom ";?></td>
<td><?php $ema = $registro['email'];
echo "$ema ";?></td>
<td><?php $sex = $registro['sexo'];
echo "$sex ";?></td>
<?php echo "<br>";?>
</tr>
<?php
}
?>
</table>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</center>
</body>
</html>
_________________________________
actualizar.php
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>ACTUALIZAR CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>FORMULARIO PARA ACTUALIZAR CLIENTES</u></h2></center>
<br>
<center>
<?php
include ("conexion.php");
$con = mysqli_query($link, "SELECT * from clientes");
$reg = mysqli_fetch_array($con);
?>
<form action="" method="post">
<select name="perso">
<?php
do {
$id = $reg['id_cliente'];
$nom = $reg['nombre'];
?>
<option value="<?php echo $id; ?>"><?php echo $nom; ?>
</option>
<?php
} while ($reg = mysqli_fetch_array($con))
?>
</select>
<input type="submit" name="actu" value="Traer Datos" />
</form>
<?php
if (isset($_POST['actu'])) {
$per = $_POST['perso'];
$con1 = mysqli_query($link, "SELECT * from clientes where id_cliente='$per'") or die(mysqli_error());
$reg1 = mysqli_fetch_array($con1);
$ced=$reg1['cedula'];
$nom=$reg1['nombre'];
$ema=$reg1['email'];
$sex=$reg1['sexo'];
?>
<form action="" method="post">
<input type="hidden" name="ids" value="<?php echo $per; ?>">
CEDULA:<input type="" name="ced" value="<?php echo $ced; ?>"><br>
NOMBRE:<input type="" name="nom" value="<?php echo $nom; ?>"><br>
EMAIL:<input type="" name="ema" value="<?php echo $ema; ?>"><br>
GENERO:<br>
Hombre:<input <?php if ($sex=="m"){echo "checked";}?> type="radio" name="sex" value="m">
Mujer:<input <?php if ($sex=="f"){echo "checked";}?> type="radio" name="sex" value="f"><br><br>
<input type="submit" name="actufinal" value="Actualizar Datos" />
</form>
<?php
}
?>
<?php
if (isset($_POST['actufinal'])) {
$ids = $_POST['ids'];
$cedu = $_POST['ced'];
$nomb = $_POST['nom'];
$emai = $_POST['ema'];
$sexo = $_POST['sex'];
mysqli_query($link, "UPDATE clientes set cedula='$cedu', nombre='$nomb', email='$emai', sexo='$sexo' where id_cliente='$ids'")or die(mysqli_error());
echo "<script type='text/javascript'>alert('Dato Actualizado');location='actualizar.php'</script>";
//echo "<script alert('Dato Actualizado' ; location='actualizar.php')</script>";
}
?>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</body>
</html>
<meta charset="utf-8">
<html>
<head>
<title>ACTUALIZAR CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>FORMULARIO PARA ACTUALIZAR CLIENTES</u></h2></center>
<br>
<center>
<?php
include ("conexion.php");
$con = mysqli_query($link, "SELECT * from clientes");
$reg = mysqli_fetch_array($con);
?>
<form action="" method="post">
<select name="perso">
<?php
do {
$id = $reg['id_cliente'];
$nom = $reg['nombre'];
?>
<option value="<?php echo $id; ?>"><?php echo $nom; ?>
</option>
<?php
} while ($reg = mysqli_fetch_array($con))
?>
</select>
<input type="submit" name="actu" value="Traer Datos" />
</form>
<?php
if (isset($_POST['actu'])) {
$per = $_POST['perso'];
$con1 = mysqli_query($link, "SELECT * from clientes where id_cliente='$per'") or die(mysqli_error());
$reg1 = mysqli_fetch_array($con1);
$ced=$reg1['cedula'];
$nom=$reg1['nombre'];
$ema=$reg1['email'];
$sex=$reg1['sexo'];
?>
<form action="" method="post">
<input type="hidden" name="ids" value="<?php echo $per; ?>">
CEDULA:<input type="" name="ced" value="<?php echo $ced; ?>"><br>
NOMBRE:<input type="" name="nom" value="<?php echo $nom; ?>"><br>
EMAIL:<input type="" name="ema" value="<?php echo $ema; ?>"><br>
GENERO:<br>
Hombre:<input <?php if ($sex=="m"){echo "checked";}?> type="radio" name="sex" value="m">
Mujer:<input <?php if ($sex=="f"){echo "checked";}?> type="radio" name="sex" value="f"><br><br>
<input type="submit" name="actufinal" value="Actualizar Datos" />
</form>
<?php
}
?>
<?php
if (isset($_POST['actufinal'])) {
$ids = $_POST['ids'];
$cedu = $_POST['ced'];
$nomb = $_POST['nom'];
$emai = $_POST['ema'];
$sexo = $_POST['sex'];
mysqli_query($link, "UPDATE clientes set cedula='$cedu', nombre='$nomb', email='$emai', sexo='$sexo' where id_cliente='$ids'")or die(mysqli_error());
echo "<script type='text/javascript'>alert('Dato Actualizado');location='actualizar.php'</script>";
//echo "<script alert('Dato Actualizado' ; location='actualizar.php')</script>";
}
?>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</body>
</html>
_________________________________
eliminar.php
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>ELIMINAR CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>FORMULARIO PARA ELIMINAR CLIENTES</u></h2></center>
<br>
<center>
<?php
include ("conexion.php");
$con = mysqli_query($link, "SELECT * from clientes");
$reg = mysqli_fetch_array($con);
?>
<form action="" method="post">
SELECCIONE PARA ELIMINAR
<select name="persona">
<option>Seleccione</option>
<?php
do {
$id = $reg['id_cliente'];
$nom = $reg['nombre'];
?>
<option value="<?php echo $id; ?>"><?php echo $nom; ?></option>
<?php
} while ($reg = mysqli_fetch_array($con));
?>
</select>
<br>
<br>
<input type="submit" name="eliminar" value="Eliminar Dato">
<?php
if (isset($_POST['persona'])){
$per = $_POST['persona'];
mysqli_query($link, "DELETE from clientes where id_cliente='$per'") or die(mysqli_error());
header("location:eliminar.php");
}
?>
</form>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</center>
</body>
</html>
<meta charset="utf-8">
<html>
<head>
<title>ELIMINAR CLIENTES</title>
</head>
<body bgcolor="#e1e1e1">
<center><h2><u>FORMULARIO PARA ELIMINAR CLIENTES</u></h2></center>
<br>
<center>
<?php
include ("conexion.php");
$con = mysqli_query($link, "SELECT * from clientes");
$reg = mysqli_fetch_array($con);
?>
<form action="" method="post">
SELECCIONE PARA ELIMINAR
<select name="persona">
<option>Seleccione</option>
<?php
do {
$id = $reg['id_cliente'];
$nom = $reg['nombre'];
?>
<option value="<?php echo $id; ?>"><?php echo $nom; ?></option>
<?php
} while ($reg = mysqli_fetch_array($con));
?>
</select>
<br>
<br>
<input type="submit" name="eliminar" value="Eliminar Dato">
<?php
if (isset($_POST['persona'])){
$per = $_POST['persona'];
mysqli_query($link, "DELETE from clientes where id_cliente='$per'") or die(mysqli_error());
header("location:eliminar.php");
}
?>
</form>
<br>
<hr>
<form method="get" action="index.php">
<input type="submit" name="vol" value="VOLVER">
</form>
</center>
</body>
</html>
__________________________________________________________
Modelo 1 de Matriz CRUD. - POO
Vamos a ver cómo crear un CRUD en PHP (create, read, update, delete), en la programación Web con PHP.
Para
desarrollar el ejemplo, debes tener un editor en mi caso utilizo
Sublime Text, además necesitas un entorno que te permita desarrollar
aplicaciones para PHP, este puede ser: XAMPP que es el que he utilizado
en este ejemplo.
QUÉ VAMOS HACER?
Vamos
hacer un ejemplo muy sencillo, que nos va permitir ingresar, editar,
leer y eliminar los datos de una tabla llamada libros y aunque es una
sola tabla con tan solo 4 campos, te da la pauta suficiente para hacerlo
con más tablas que tengan más campos.
ESTRUCTURA DEL PROYECTO?
La estructura queda con 8 archivos que los describo de forma general a continuación:
- index.php: Es un archivo que contiene html y lo que muestra son las opciones Ingresar y Ver, las mismas que direccionan a las páginas ingresar.php y mostrar.php respectivamente.
- conexion.php: Este archivo contiene el código para la conexión con MySQL.
- libro.php: Contiene la clase Libro, con sus respectivas propiedades y métodos getters y setters.
- crud_libro.php: Este archivo tiene los métodos crud para la tabla libros.
- administrar_libro.php: Funciona como un controlador que redirecciona dependiendo la petición hecha desde la vista.
- Finalmente se encuentran los archivos
- ingresar.php, mostrar.php y actualizar.php cuyas funciones son fácilmente reconocibles por los nombres que llevan.
CÓMO EMPEZAMOS?
Para empezar debes crear una carpeta llamada crud-basico dentro de la siguiente ruta C:\xampp\htdocs\
Una vez creada, la vas abrir con el editor que utilices, en mi caso con Sublime Text (File->Open Folder).
CREANDO LA BASE DE DATOS:
Antes de continuar con la codificación, vamos a crear una base de datos en MySQL llamada biblioteca con una tabla llamada libros así:
Clic en la imagen...
ARCHIVO DE CONEXIÓN A LA BASE DE DATOS:
De
regreso a Sublime Text dentro de esta carpeta (crud-basico) creas el
primero de 8 archivos, el primer archivo que creas es el de conexión a
la base de datos, al mismo que lo vas a llamar conexion.php, y que contendrá el siguiente código.
Clic en la imagen...
Lo
que creamos es una clase para conectarnos a la base de datos
biblioteca, la conexión se la realiza a través de la interfaz que
proporciona un conjunto de funciones que nos permiten acceder a las
tablas de una base de datos.
El
constructor de la clase recibe 3 parámetros: el origen de la base de
datos, el usuario, la clave y un último parámetro que permite manejar
alguna excepción que pueda ocurrir, ya sea debido a que el nombre de la
base de datos, clave o usuario no fueran los correctos .
CREANDO LA VISTA PRINCIPAL:
Lo que vamos hacer ahora es crear la vista principal de nuestra aplicación, este archivo se va llamar index.php puesto que es lo primero que se va mostrar al usuario.
Clic en la imagen...
Lo más importante de este archivo son el direccionamiento a las páginas ingresar.php que permite crear un nuevo libro y mostrar.php, que muestra todos los libros guardados.
FORMULARIO PARA INGRESAR UN LIBRO:
El siguiente archivo que vamos a crear, permite ingresar los datos del libro y crear la petición para guardar los datos en la base, creamos el archivo con el nombre de ingresar.php
Clic en la imagen...
Para que una petición sea enviada y procesada en el servidor debe estar dentro de un formulario html; así mismo se debe poner la página en la que será procesada la petición (action) que para este caso es el archivo administrar_libro.php que lo crearemos más adelante.
Algo interesante es el elemento <input type=’hidden’ name=’insertar’ value=’insertar’>, se lo pone como (hidden) oculto puesto que se lo utiliza para determinar si debe incorporar al código de ingresar en el archivo administrar_libro.php .
LA CLASE LIBRO:
El siguiente archivo libro.php contiene la clase Libro que permite mapear los atributos a la tabla libros.
Clic en la imagen...
LA CLASE CON LAS FUNCIONES CRUD:
En el archivo crud_libro.php vamos a codificar las funciones CRUD para la tabla libros.
Clic en la imagen...
EL ARCHIVO QUE HARÁ DE CONTROLADOR:Ahora creamos el archivo administrar_libro.php este archivo hará las funciones de un controlador, ya que procesará de acuerdo a la petición que le sea enviado desde la vista.
Clic en la imagen...
LA VISTA MOSTRAR LIBROS:
Llamado mostrar.php, lo que hace es mostrar todos los libros guardados.
Clic en la imagen...
LA VISTA PARA ACTUALIZAR UN LIBRO:
El archivo actualizar.php permite modificar los datos de un libro y posteriormente guardarlos.
Clic en la imagen...
RESULTADO FINAL:
1er Pantallazo:
2do Pantallazo:
3er Pantallazo:
Cibergrafía:
https://www.ecodeup.com













No hay comentarios:
Publicar un comentario