[go: up one dir, main page]

0% encontró este documento útil (0 votos)
198 vistas37 páginas

CRUD Cliente con PHP y Bootstrap

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
198 vistas37 páginas

CRUD Cliente con PHP y Bootstrap

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 37

Abrir XAMPP

Ejecutar APACHE y MYSQL (el apache es para que pueda cargar PHPMYADMIN)
Una vez que estén ambos en verde, le damos clic al botón ADMIN del servicio MYSQL. Deberá abrirse la siguiente
ventana:
También podemos ejecutar el query

CREATE TABLE `dbpruebaB2`.`cliente` (

`idcliente` INT NOT NULL AUTO_INCREMENT,

`nombres` VARCHAR(45) NULL,

`paterno` VARCHAR(45) NULL,

`materno` VARCHAR(45) NULL,

`dni` CHAR(8) NULL,

PRIMARY KEY (`idcliente`));


Probar conexión a BD

<?php

$servidor="localhost";
$db="dbpruebab2";
$user="root";
$pass="";

try {
$conexion=new PDO("mysql:host=$servidor;dbname=$db",$user,$pass);
echo "conexion exitosa";
} catch(Exception $e)
{
echo $e->getMessage();
}

?>
Listar registros

Primero registramos directamente en la bd un cliente

INSERT INTO `dbpruebab2`.`cliente` (`nombres`, `paterno`, `materno`, `dni`) VALUES ('Sara', 'Ramirez', 'Soto',
'76584323');

Comentamos el mensaje de conexión exitosa del archivo conexión.php


Utilizamos una plantilla que usa Bootstrap en nuestro archivo index.php de la carpeta CRUDB2

<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
rel="stylesheet">
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
></script>
</head>
<body>

<div class="container">
<h1>My First Bootstrap Page</h1>
<p>This part is inside a .container class.</p>
<p>The .container class provides a responsive fixed width container.</p>
</div>

</body>
</html>

Al abrir la página debe verse así:

Ahora separamos esta plantilla en header.php y footer.php, donde la parte que llega hasta el <body> irá como
header y desde el </body> al final en el footer.

Quedando de la siguiente manera:


* se debe incluir <?php $url_base="http://localhost/crudB2" ?> al principio del header.php

Y el archivo index.php quedará así


Si volvemos a probar la página tendremos el mismo resultado que al principio

Ahora preparamos el index para el CRUD del cliente, este index consistirá en listar todos los registros que se
encuentran en la tabla cliente
En el contenido del index.php de cliente, vamos a colocar una tabla con diseño de Bootstrap

Debe verse así:


Luego incluimos el siguiente código al principio el cual servirá para traer los registros de la base de datos

include("../conexion.php");

$stm = $conexion->prepare("SELECT * FROM cliente");


$stm->execute();
$clientes=$stm->fetchAll(PDO::FETCH_ASSOC);
?>

Y entre las etiquetas <tbody> y </tbody> incluimos el siguiente código

<?php foreach($clientes as $cliente) { ?>


<tr>
<td><?php echo $cliente['idcliente']; ?></td>
<td><?php echo $cliente['nombres']; ?></td>
<td><?php echo $cliente['paterno']; ?></td>
<td><?php echo $cliente['materno']; ?></td>
<td><?php echo $cliente['dni']; ?></td>
</tr>
<?php } ?>

Si insertaste registros en la tabla previamente, deberás tener un resultado como este:


INSERTAR CLIENTE

En el registrasr.php del CRUD cliente pegamos el siguiente código

<!-- Modal -->


<div class="modal fade" id="registrarCliente" tabindex="-1" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Registrar Cliente</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-
label="Close"></button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-
dismiss="modal">Cerrar</button>
<button type="button" class="btn btn-primary">Guardar</button>
</div>
</div>
</div>
</div>
Luego ponemos el siguiente código sobre la tabla del index.php del CRUD cliente

<!-- Button trigger modal -->


<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-
target="#registrarCliente">
Nuevo cliente
</button>

Y casi al final del documento agregamos la línea <?php include("registrar.php"); ?>


Al ejecutarlo deberás tener este resultado:

Ahora vamos a incluir los campos necesarios para que funcione nuestro formulario de registro. Nos ubicamos en el
archivo registrar.php del CRUD cliente
Y en los … vamos a incluir el siguiente código:

<label for="">Nombres</label>
<input type="text" class="form-control" name="nombres" value ""
placeholder="ingrese su nombre">

<label for="">Apellido Paterno</label>


<input type="text" class="form-control" name="nombres" value ""
placeholder="ingrese su apellido paterno">

<label for="">Apellido Materno</label>


<input type="text" class="form-control" name="nombres" value ""
placeholder="ingrese su apellido materno">

<label for="">DNI</label>
<input type="text" class="form-control" name="nombres" value ""
placeholder="ingrese su número de dni">
Todo el div modal-body debe estar dentro de una etiqueta form
Y también debemos cambiar el tipo de botón Guardar de button a submit

En la parte superior debemos incluir el siguiente código

<?php
if($_POST) {
$nombres=(isset($_POST['nombres'])?$_POST['nombres']:"");
$paterno=(isset($_POST['paterno'])?$_POST['paterno']:"");
$materno=(isset($_POST['materno'])?$_POST['materno']:"");
$dni=(isset($_POST['dni'])?$_POST['dni']:"");
$stm=$conexion->prepare("INSERT INTO cliente(nombres,paterno,materno,dni)
VALUES(:nombres,:paterno,:materno,:dni)");
$stm->bindParam(":nombres",$nombres);
$stm->bindParam(":paterno",$paterno);
$stm->bindParam(":materno",$materno);
$stm->bindParam(":dni",$dni);
$stm->execute();

header("location:index.php");
}
?>

Al ejecutarlo vemos lo siguiente:


Ahora agregamos a la tabla un botón para editar y otro para eliminar
Eliminar Cliente

En el hipervínculo para el botón eliminar cambiamos por:

<td><a href="index.php?<?php echo $cliente['idcliente']; ?>" class="btn btn-


danger">Eliminar</a>

También añadimos el siguiente código en la parte superior

if(isset($_GET['id']))
{
$txtid = (isset($_GET['id'])?$_GET['id']:"");
$stm=$conexion->prepare("DELETE FROM cliente WHERE idcliente = :txtid");
$stm->bindParam(":id",$txtid);
$stm->execute();

header("location:index.php");
}
Editar Cliente

En el hipervínculo para editar cliente del index.php del CRUD cliente, cambiamos por:

<td><a href="modificar.php?id=<?php echo $cliente['idcliente']; ?>"


class="btn btn-warning">Editar</a>

En el archivo modificar.php copiamos todo el FORM archivo registrar.php

<form action="" method="POST">


<div class="modal-body">
<label for="">Nombres</label>
<form action="" method="POST">

<div class="modal-body">
<label for="">Nombres</label>
<input type="text" class="form-control" name="nombres" value ""
placeholder="ingrese su nombre">

<label for="">Apellido Paterno</label>


<input type="text" class="form-control" name="paterno" value ""
placeholder="ingrese su apellido paterno">

<label for="">Apellido Materno</label>


<input type="text" class="form-control" name="materno" value ""
placeholder="ingrese su apellido materno">

<label for="">DNI</label>
<input type="text" class="form-control" name="dni" value ""
placeholder="00000000">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-
dismiss="modal">Cerrar</button>
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</div>
</form>

Y cambiamos el botón CERRAR por

<a href="index.php" class="btn btn-danger">Cancelar</a>

Añadimos un campo oculto en el form para guardar el ID


<input type="hidden" class="form-control" name="id" value="<?php echo $id;
?>" placeholder="ingrese su nombre">

También añadimos el header.php y footer.php igual como hicimos en el index.php

Ahora agregamos el siguiente código al principio

<?php

include("../conexion.php");
if(isset($_GET['id'])){
$id = (isset($_GET['id'])?$_GET['id']:"");
$stm = $conexion->prepare("SELECT * FROM cliente WHERE idcliente = :id");
$stm->bindParam(":id",$id);
$stm->execute();
$registro=$stm->fetch(PDO::FETCH_LAZY);
$nombres=$registro['nombres'];
$paterno=$registro['paterno'];
$materno=$registro['materno'];
$dni=$registro['dni'];
}

if($_POST){
$id=(isset($_POST['id'])?$_POST['id']:"");
$nombres=(isset($_POST['nombres'])?$_POST['nombres']:"");
$paterno=(isset($_POST['paterno'])?$_POST['paterno']:"");
$materno=(isset($_POST['materno'])?$_POST['materno']:"");
$dni=(isset($_POST['dni'])?$_POST['dni']:"");

$stm=$conexion->prepare("UPDATE cliente SET


nombres=:nombres,paterno=:paterno,materno=:materno,dni=:dni WHERE id=:id");
$stm->bindParam(":id",$id);
$stm->bindParam(":nombres",$nombres);
$stm->bindParam(":paterno",$paterno);
$stm->bindParam(":materno",$materno);
$stm->bindParam(":dni",$dni);
$stm->execute();

header("location:index.php");
}

?>
Probamos
Abrir WORKBENCH

Hacemos clic en nueva conexión


Colocamos un nombre a la conexión y hacemos clic en Test Connection
Dependiendo la versión del MYSQL puede salir el siguiente mensaje:

Hacemos click en CONTINUE ANYWAY

También podría gustarte