Herramientas usadas
- WAMP - Versión 3.1.7
- Apache - Versión 2.4.37
- PHP - Versión 7.3.1
- MySQL - Versión 5.7.24
- MariaBD - Versión 10.3.12
Base de datos utilizada
/* TABLA USUARIOS */
CREATE TABLE usuarios (
id INT NOT NULL AUTO_INCREMENT ,
dni CHAR(8) NOT NULL ,
nombres VARCHAR(100) NOT NULL ,
apellidos VARCHAR(150) NOT NULL ,
fecha_nacimiento DATE NOT NULL ,
PRIMARY KEY (id),
UNIQUE uq_dni (dni)
)ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_general_ci;
/* DATOS DE PRUEBA */
INSERT INTO usuarios( dni, nombres, apellidos, fecha_nacimiento) VALUES
('45115544','Lucero','Flores Diaz','2000-06-05'),
('22455544','Flor','Mesa ochoa','1990-01-01'),
('49814422','Mario','Vela Roca','1985-12-15'),
('77115004','Pedro','Ruiz Gamboa','2002-02-24')
Creando el archivo de configuración
Creamos el documento: config.php<?php
date_default_timezone_set("America/Lima");
define("DB_HOST", "localhost");
define("DB_USER", "root"); # Usuario root
define("DB_PASSWORD", ""); # Sin contraseña
define("DB_NAME", "blog"); # Nombre de la base de datos
define("DB_PORT", "3306"); # Puerto 3306 - MySQL, 3307 - MariaBD
Creando la conexión
Existen dos formas, de crear el archivo de conexión:- Mediante un archivo simple de conexión
- Mediante una clase
- Usando mysqli
- Usando PDO
Creamos un archivo llamado: lib_mysql.php
<?php
include_once('config.php');
$cnx = '';
/**
* Función para Conectarse a la base de datos
*/
function bd_conectar() {
global $cnx;
$cnx = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, DB_PORT);
mysqli_query($cnx, "set names utf8");
}
/**
* Función para desconectarse de la base de datos
*/
function bd_desconectar() {
global $cnx;
mysqli_close($cnx);
}
Funciones CRUD
- C - Create - INSERT
- R - Read - SELECT
- U - Update - UPDATE
- D - Delete - DELETE
Leer Registros (SELECT)
Agregamos la función bd_consultar al archivo llamado: lib_mysql.php/**
* Función para realizar consultas (SELECT) a la base de datos
*/
function bd_consultar($sql) {
global $cnx;
$bolsa = mysqli_query($cnx, $sql);
$salida = array();
if ($bolsa != null) {
while ($row = mysqli_fetch_assoc($bolsa)) {
$salida[] = $row;
}
mysqli_free_result($bolsa);
} else {
$salida = false;
}
unset($row);
return $salida;
}
Crear, actualizar y eliminar registros (INSERT, UPDATE, DELETE)
Agregamos la función bd_ejecutar al archivo llamado: lib_mysql.php/**
* Función para ejecuciones UPDATE o DELETE a la base de datos
*/
function bd_ejecutar($sql) {
global $cnx;
$exito = mysqli_query($cnx, $sql);
if ($exito) {
return true;
} else {
return false;
}
}
Creando una interfaz (Tablas y formularios)
Creamos un archivo llamado: index.phpAquí llamamos al documento PHP que contiene las funciones de conexión y para ejecutar sentencias SQL, recorriendola mediante un FOREACH en una tabla.
<?php
include_once 'lib_mysql.php';
try {
bd_conectar();
} catch (Exception $e) {
die($e->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CRUD con PHP y MySQL</title>
</head>
<body>
<a href="modificar.php">Nuevo Registro</a>
<table border="1" style="border-collapse: collapse; width: 100%;">
<thead>
<th>DNI</th>
<th>NOMBRES</th>
<th>APELLIDOS</th>
<th>FECHA DE NACIMIENTO</th>
<th colspan="2">ACCIONES</th>
</thead>
<tbody>
<?php
$registros = bd_consultar("SELECT * FROM usuarios");
if (!$registros) {
?>
<tr>
<td colspan="6"><?= "No hay registros" ?></td>
</tr>
<?php
} else {
foreach ($registros as $persona) {
?>
<tr>
<td style="text-align: center"><?= $persona['dni'] ?></td>
<td><?= $persona['nombres'] ?></td>
<td><?= $persona['apellidos'] ?></td>
<td style="text-align: center">
<?= $persona['fecha_nacimiento'] ?>
</td>
<td style="text-align: center">
<a href="modificar.php?id=<?= $persona['id'] ?>">
Editar</a>
</td>
<td style="text-align: center">
<a href="eliminar.php?id=<?= $persona['id'] ?>"
onclick="return confirm('¿Seguro que deseas eliminar?');">
Borrar</a>
</td>
</tr>
<?php
}
}
bd_desconectar()
?>
</tbody>
</table>
</body>
</html>
Creamos un archivo llamado: modificar.php
<?php
include_once 'lib_mysql.php';
$rotulo = "AGREGAR";
if (isset($_GET['id'])){
$id = $_GET['id'];
$sql = "SELECT * FROM usuarios WHERE id = $id";
$rotulo = "MODIFICAR";
bd_conectar();
$registros = bd_consultar($sql);
$persona = $registros[0];
unset($registros);
bd_desconectar();
}else {
$persona = null;
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?= $rotulo ?> USUARIOS</title>
</head>
<body>
<h1><?= $rotulo ?> USUARIOS</h1>
<form name="InsUpd" method="POST" action="editar_grabar.php">
<input type="text" name="txtId" value="<?= $persona['id']?>"
hidden="hidden"/>
DNI:<br/>
<input type="text" name="txtDni" value="<?= $persona['dni']?>"
placeholder="Ingrese su DNI" required="required"/><br/>
<br/>Apellidos:<br/>
<input type="text" name="txtApe" value="<?= $persona['apellidos']?>"
placeholder="Ingrese sus apellidos" required="required"/><br/>
<br/>Nombres:<br/>
<input type="text" name="txtNom" value="<?= $persona['nombres']?>"
placeholder="Ingrese sus nombres" required="required"/><br/>
<br/>Fecha de nacimiento:<br/>
<input type="date" name="txtFec"
value="<?= $persona['fecha_nacimiento']?>" required="required"/>
<br/><br/>
<br/><input type="submit" name="btnGrabar" value="<?= $rotulo ?>">
</form>
</body>
</html>
Creamos un archivo llamado: editar_grabar.php para enviar la información a la base de datos
<?php
include_once 'lib_mysql.php';
$dni = $_POST['txtDni'];
$apellidos = $_POST['txtApe'];
$nombres = $_POST['txtNom'];
$fecha = $_POST['txtFec'];
if ( $_POST['txtId'] == '' ) {
$sql = "INSERT INTO usuarios (dni, nombres, apellidos, fecha_nacimiento)";
$sql .= "values('$dni','$nombres','$apellidos','$fecha')";
} else {
$id = $_POST['txtId'];
$sql = "UPDATE usuarios SET dni = '$dni', nombres = '$nombres',"
. " apellidos = '$apellidos', fecha_nacimiento = '$fecha' WHERE id = $id";
}
bd_conectar();
if (bd_ejecutar($sql)) {
bd_desconectar();
header('location: index.php');
} else {
echo "Error al procesar el registro:<br/>";
echo '<a href="index.php">Regresar</a>';
bd_desconectar();
}
Creamos un archivo llamado: eliminar.php
<?php
include_once 'lib_mysql.php';
$id = $_GET['id'];
$sql = "DELETE FROM usuarios WHERE id = $id";
bd_conectar();
if (bd_ejecutar($sql)){
header('location: index.php');
} else{
echo "Error al eliminar el registro:<br/>";
echo '<a href="index.php">Regresar</a>';
}
Resultado
Página IndexEstructura de archivos
No hay comentarios:
Publicar un comentario