4. CRUD Parte 2 (Insertar, Actualizar, Eliminar y Buscar)
Requisitos:
Modificamos el script index.php para agregar una tabla en donde mostrara todos los registro que vayamos agregando:
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
<?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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?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 llama al script eliminar.php enviando el id del registro para eliminarlo:
eliminar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?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 terminado un CRUD en PHP y MySQL, lo cual realiza inserción, actualización eliminación, búsqueda y consulta a una base de datos.