En este tutorial aprenderemos a realizar transacciones de MySQL como son Insertar, Actualizar, eliminar y Buscar desde PHP.
Requisitos:
- Servidor Web, PHP y MySQL. Ver Capitulo 1
- Bootstrap. Descargar
- jQuery. Descargar
En el capitulo 3 de Curso de PHP y MySQL creamos un formulario para agregar registros a la base de datos, en este capitulo continuaremos con las opciones de modificar, eliminar y buscar.
Modificamos el script index.php para agregar una tabla en donde mostrara todos los registro que vayamos agregando:
index.php
<?php
require 'conexion.php';
$where = "";
if(!empty($_POST))
{
$valor = $_POST['campo'];
if(!empty($valor)){
$where = "WHERE nombre LIKE '%$valor'";
}
}
$sql = "SELECT * FROM personas $where";
$resultado = $mysqli->query($sql);
?>
<html lang="es">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-theme.css" rel="stylesheet">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<h2 style="text-align:center">Curso de PHP y MySQL</h2>
</div>
<div class="row">
<a href="nuevo.php" class="btn btn-primary">Nuevo Registro</a>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<b>Nombre: </b><input type="text" id="campo" name="campo" />
<input type="submit" id="enviar" name="enviar" value="Buscar" class="btn btn-info" />
</form>
</div>
<br>
<div class="row table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Email</th>
<th>Telefono</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<?php while($row = $resultado->fetch_array(MYSQLI_ASSOC)) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['correo']; ?></td>
<td><?php echo $row['telefono']; ?></td>
<td><a href="modificar.php?id=<?php echo $row['id']; ?>"><span class="glyphicon glyphicon-pencil"></span></a></td>
<td><a href="#" data-href="eliminar.php?id=<?php echo $row['id']; ?>" data-toggle="modal" data-target="#confirm-delete"><span class="glyphicon glyphicon-trash"></span></a></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="confirm-delete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Eliminar Registro</h4>
</div>
<div class="modal-body">
¿Desea eliminar este registro?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<a class="btn btn-danger btn-ok">Delete</a>
</div>
</div>
</div>
</div>
<script>
$('#confirm-delete').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('href', $(e.relatedTarget).data('href'));
$('.debug-url').html('Delete URL: <strong>' + $(this).find('.btn-ok').attr('href') + '</strong>');
});
</script>
</body>
</html>
La vista nos muestra la tabla con los registros así como la opción para buscar en la tabla:

Al presionar el icono del lápiz enviara al formulario por método GET para modificar el registro junto con el id:
modificar.php
<?php require 'conexion.php'; $id = $_GET['id']; $sql = "SELECT * FROM personas WHERE id = '$id'"; $resultado = $mysqli->query($sql); $row = $resultado->fetch_array(MYSQLI_ASSOC); ?> <html lang="es"> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="css/bootstrap-theme.css" rel="stylesheet"> <script src="js/jquery-3.1.1.min.js"></script> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <h3 style="text-align:center">MODIFICAR REGISTRO</h3> </div> <form class="form-horizontal" method="POST" action="update.php" autocomplete="off"> <div class="form-group"> <label for="nombre" class="col-sm-2 control-label">Nombre</label> <div class="col-sm-10"> <input type="text" class="form-control" id="nombre" name="nombre" placeholder="Nombre" value="<?php echo $row['nombre']; ?>" required> </div> </div> <input type="hidden" id="id" name="id" value="<?php echo $row['id']; ?>" /> <div class="form-group"> <label for="email" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="email" name="email" placeholder="Email" value="<?php echo $row['correo']; ?>" required> </div> </div> <div class="form-group"> <label for="telefono" class="col-sm-2 control-label">Telefono</label> <div class="col-sm-10"> <input type="tel" class="form-control" id="telefono" name="telefono" placeholder="Telefono" value="<?php echo $row['telefono']; ?>" > </div> </div> <div class="form-group"> <label for="estado_civil" class="col-sm-2 control-label">Estado Civil</label> <div class="col-sm-10"> <select class="form-control" id="estado_civil" name="estado_civil"> <option value="SOLTERO" <?php if($row['estado_civil']=='SOLTERO') echo 'selected'; ?>>SOLTERO</option> <option value="CASADO" <?php if($row['estado_civil']=='CASADO') echo 'selected'; ?>>CASADO</option> <option value="OTRO" <?php if($row['estado_civil']=='OTRO') echo 'selected'; ?>>OTRO</option> </select> </div> </div> <div class="form-group"> <label for="hijos" class="col-sm-2 control-label">¿Tiene Hijos?</label> <div class="col-sm-10"> <label class="radio-inline"> <input type="radio" id="hijos" name="hijos" value="1" <?php if($row['hijos']=='1') echo 'checked'; ?>> SI </label> <label class="radio-inline"> <input type="radio" id="hijos" name="hijos" value="0" <?php if($row['hijos']=='0') echo 'checked'; ?>> NO </label> </div> </div> <div class="form-group"> <label for="intereses" class="col-sm-2 control-label">INTERESES</label> <div class="col-sm-10"> <label class="checkbox-inline"> <input type="checkbox" id="intereses[]" name="intereses[]" value="Libros" <?php if(strpos($row['intereses'], "Libros")!== false) echo 'checked'; ?>> Libros </label> <label class="checkbox-inline"> <input type="checkbox" id="intereses[]" name="intereses[]" value="Musica" <?php if(strpos($row['intereses'], "Musica")!== false) echo 'checked'; ?>> Musica </label> <label class="checkbox-inline"> <input type="checkbox" id="intereses[]" name="intereses[]" value="Deportes" <?php if(strpos($row['intereses'], "Deportes")!== false) echo 'checked'; ?>> Deportes </label> <label class="checkbox-inline"> <input type="checkbox" id="intereses[]" name="intereses[]" value="Otros" <?php if(strpos($row['intereses'], "Otros")!== false) echo 'checked'; ?>> Otros </label> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <a href="index.php" class="btn btn-default">Regresar</a> <button type="submit" class="btn btn-primary">Guardar</button> </div> </div> </form> </div> </body> </html>
Y el resultado es el formulario con los datos del registro:

Al presionar el boto de guardar enviara el formulario por método POST para realizar la actualización del registro, en el formulario va oculto el id del registro:
update.php
<?php
require 'conexion.php';
$id = $_POST['id'];
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$estado_civil = $_POST['estado_civil'];
$hijos = isset($_POST['hijos']) ? $_POST['hijos'] : 0;
$intereses = isset($_POST['intereses']) ? $_POST['intereses'] : null;
$arrayIntereses = null;
$num_array = count($intereses);
$contador = 0;
if($num_array>0){
foreach ($intereses as $key => $value) {
if ($contador != $num_array-1)
$arrayIntereses .= $value.' ';
else
$arrayIntereses .= $value;
$contador++;
}
}
$sql = "UPDATE personas SET nombre='$nombre', correo='$email', telefono='$telefono', estado_civil='$estado_civil', hijos='$hijos', intereses='$arrayIntereses' WHERE id = '$id'";
$resultado = $mysqli->query($sql);
?>
<html lang="es">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-theme.css" rel="stylesheet">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="row" style="text-align:center">
<?php if($resultado) { ?>
<h3>REGISTRO MODIFICADO</h3>
<?php } else { ?>
<h3>ERROR AL MODIFICAR</h3>
<?php } ?>
<a href="index.php" class="btn btn-primary">Regresar</a>
</div>
</div>
</div>
</body>
</html>
Para eliminar nos mostrara un modal para confirmar la eliminación del registro:

Al presionar el botón de X que esta en la parte superior derecha o el botón de Cancelar no realizara ninguna acción y solo cerrara el modal, pero si presionamos el botón de Delete redireccionara al script eliminar.php enviando el id del registro para eliminarlo:
eliminar.php
<?php
require 'conexion.php';
$id = $_GET['id'];
$sql = "DELETE FROM personas WHERE id = '$id'";
$resultado = $mysqli->query($sql);
?>
<html lang="es">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-theme.css" rel="stylesheet">
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="row" style="text-align:center">
<?php if($resultado) { ?>
<h3>REGISTRO ELIMINADO</h3>
<?php } else { ?>
<h3>ERROR AL ELIMINAR</h3>
<?php } ?>
<a href="index.php" class="btn btn-primary">Regresar</a>
</div>
</div>
</div>
</body>
</html>
Con esto ya hemos realizado un CRUD en PHP y MySQL, lo cual realizar inserción, actualización eliminación, búsqueda y consulta a una base de datos.
Recuerda suscribirte a nuestro canal de YouTube, ¡¡¡Es Gratis!!!
Tutorial en Vídeo:

2 comentarios en «Curso en PHP y MySQL 4: CRUD Parte 2»
Los comentarios están cerrados.