CRUD BÁSICO Y FÁCIL DE USUARIOS EN PHP, MYSQL, HTML Y CSS

Proyecto para realizar mantenimiento de datos de usuarios como crear nuevos usuarios, buscar por DNI, ver información completa, modificar y eliminar, funciona con MySQL y la tabla tiene una paginación básica.




  • El proyecto empieza mostrando el título de la tabla, luego los botones de inicio, crear usuarios, buscar y la caja de texto para ingresar el DNI a buscar, más abajo podemos ver la tabla que se encarga de listar a todo los usuarios que se encuentren en la base de datos mostrando su nombre, DNI, dirección, teléfono, correo y cada uno de estos con su respectivo botón para ver, modificar o eliminar.
  • La tabla esta configurado para mostrar la lista de los usuarios por orden alfabético, tiene una paginación para mostrar solo 5 usuarios por página y 2 botones para avanzar entre páginas o retroceder.
  • El botón crear usuarios mostrará un formulario para ingresar datos y poder agregar un nuevo usuario a la base de datos siempre y cuando el DNI no sea un duplicado de otro usuario existente.
  • El botón buscar nos ayudará a encontrar a un usuario por medio de su DNI ingresado en la caja de texto.
  • El botón ver mostrará un formulario con la información completa del usuario.
  • El botón modificar permitirá editar cualquier información del usuario a excepción del DNI.
  • El botón eliminar, como su propio nombre lo dice, elimina al usuario por completo de la base de datos.
  • Al final en una etiqueta se muestra el total de usuarios que existen en la base de datos.


Al presionar en la siguiente imagen se puede ver el proyecto a tamaño original
Paginación de la tabla y botón buscar usuario

Botón crear y ver usuario

Botón modificar y eliminar usuario




Los archivos que contiene este proyecto
  • agregar.php
  • conexion.php
  • editar.php
  • eliminar.php
  • index.php
  • ver.php 
  • style.css 
En phpMyAdmin en la pestaña SQL se puede crear la siguiente base de datos, usar, crear la tabla de usuarios e insertar los datos de usuarios de ejemplo.

create database vaicrud3;

use vaicrud3;

DROP TABLE IF EXISTS `usuarios`;
CREATE TABLE IF NOT EXISTS `usuarios` (
  `nom` varchar(50) NOT NULL,
  `dni` int NOT NULL,
  `dir` varchar(50) NOT NULL,
  `tel` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  PRIMARY KEY (`dni`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


INSERT INTO `usuarios` (`nom`, `dni`, `dir`, `tel`, `email`) VALUES
('Test Usuario', 11201487, 'test', '123124124', 'test@example.com'),
('Dani Palomino', 90450324, 'las casas 123', '12312412', 'dani@example.com'),
('Arturo Reyes', 12345433, 'ArturitoJq', '43534533', 'Arturo@example.com'),
('Laura Moreno', 45785214, 'Las casas 123', '1234567', 'laurita@example.com'),
('Alejandro Morena', 56325236, 'Av. Pardo 456', '6584503', 'alealeale@example.com'),
('Claudia Torres', 67836768, 'Av. Principal 123', '5524453', 'claudis@example.com'),
('Juan Blatz', 38532523, 'La Perla 533', '6789453', 'juanplis@example.com'),
('Percy Ruiz', 34532523, 'Calle Ruiseñores 122', '5678356', 'perruiz@example.com'),
('Carlos Hokage', 63568333, 'Las hojas 700', '7894073', 'mejorhokage@example.com'),
('Miguel Narva', 45622462, 'Av. Habich 543', '6111345', 'narvita@example.com');
  • Conexion.php
<?php

$host 	= 'localhost';
$nom 	= 'root';
$pass 	= '';
$db 	= 'vaicrud3';

$conn = mysqli_connect($host, $nom, $pass, $db);

if (!$conn) 
{
  die("Error en la conexión: " . mysqli_connect_error());
}	
?>
  • Index.php
<?php
include_once("conexion.php"); 

?>
<!--Busca por VaidrollTeam para más proyectos. -->
<html>
<head>    
		<title>VaidrollTeam</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="style.css">
		<link rel="icon" href="logo.png">
</head>
<body>
    <?php
 
    $filasmax = 5;
 
    if (isset($_GET['pag'])) 
	{
        $pagina = $_GET['pag'];
    } else 
	{
        $pagina = 1;
    }
 
 if(isset($_POST['btnbuscar']))
{
$buscar = $_POST['txtbuscar'];

 $sqlusu = mysqli_query($conn, "SELECT * FROM usuarios where dni = '".$buscar."'");

}
else
{
 $sqlusu = mysqli_query($conn, "SELECT * FROM usuarios ORDER BY nom ASC LIMIT " . (($pagina - 1) * $filasmax)  . "," . $filasmax);
}
 
    $resultadoMaximo = mysqli_query($conn, "SELECT count(*) as num_usuarios FROM usuarios");
 
    $maxusutabla = mysqli_fetch_assoc($resultadoMaximo)['num_usuarios'];
	
    ?>
	<div class="cont" >
	<form method="POST">
	<h1>Lista de usuarios</h1>
	
	<a href="index.php">Inicio</a>
	
		<?php echo "<a href=\"agregar.php?pag=$pagina\">Crear usuario</a>";?>
			<input type="submit" value="Buscar" name="btnbuscar">
			<input type="text" name="txtbuscar"  placeholder="Ingresar DNI de usuario" autocomplete="off" style='width:20%'>
			</form>
    <table>
			<tr>
			<th>Nombre</th>
			<th>DNI</th>
                        <th>Dirección</th>
                        <th>Telefono</th>
                        <th>Correo</th>
			<th>Acción</th>
			</tr>
 
        <?php
 
        while ($mostrar = mysqli_fetch_assoc($sqlusu)) 
		{
			
            echo "<tr>";
            echo "<td>".$mostrar['nom']."</td>";
	    echo "<td>".$mostrar['dni']."</td>";
            echo "<td>".$mostrar['dir']."</td>";    
	    echo "<td>".$mostrar['tel']."</td>";  
	    echo "<td>".$mostrar['email']."</td>";  
            echo "<td style='width:24%'>
			<a href=\"ver.php?dni=$mostrar[dni]&pag=$pagina\">Ver</a> 
			<a href=\"editar.php?dni=$mostrar[dni]&pag=$pagina\">Modificar</a> 
			<a href=\"eliminar.php?dni=$mostrar[dni]&pag=$pagina\" onClick=\"return confirm('¿Estás seguro de eliminar a $mostrar[nom]?')\">Eliminar</a>
			</td>";  
			
        }
 
        ?>
    </table>
	<div style='text-align:right'>
	<br>
	<?php echo "Total de usuarios: ".$maxusutabla;?>
	</div>
	</div>
<div style='text-align:right'>
<br>
</div>
    <div style="text-align:center">
        <?php
        if (isset($_GET['pag'])) {
		   if ($_GET['pag'] > 1) {
                ?>
					<a href="index.php?pag=<?php echo $_GET['pag'] - 1; ?>">Anterior</a>
            <?php
					} 
				else 
					{
                    ?>
					<a href="#" style="pointer-events: none">Anterior</a>
            <?php
					}
                ?>
 
        <?php
        } 
		else 
		{
            ?>
            <a href="#" style="pointer-events: none">Anterior</a>
            <?php
        }
 
        if (isset($_GET['pag'])) {
            if ((($pagina) * $filasmax) < $maxusutabla) {
                ?>
            <a href="index.php?pag=<?php echo $_GET['pag'] + 1; ?>">Siguiente</a>
        <?php
            } else {
                ?>
            <a href="#" style="pointer-events: none">Siguiente</a>
        <?php
            }
            ?>
        <?php
        } else {
            ?>
            <a href="index.php?pag=2">Siguiente</a>
        <?php
        }
 
        ?>
    </div>

    </form>
</div>
</body>
</html>
  • Agregar.php
<?php 
include_once("conexion.php"); 
include_once("index.php");

$pagina = $_GET['pag'];
?>
<html>
<head>    
		<title>VaidrollTeam</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="caja_popup2"> 
  <form class="contenedor_popup" method="POST">
        <table>
		<tr><th colspan="2" >Agregar usuario</th></tr>
            <tr> 
                <td>Nombre</td>
                <td><input type="text" name="txtnom" autocomplete="off"></td>
            </tr>
			 <tr> 
                <td>DNI</td>
                <td><input type="number" name="txtdni" autocomplete="off"></td>
            </tr>
            <tr> 
                <td>Dirección</td>
                <td><input type="text" name="txtdir" autocomplete="off"></td>
            </tr>
            <tr> 
                <td>Telefono</td>
                <td><input type="number" name="txttel" autocomplete="off"></td>
            </tr>
			  <tr> 
                <td>Correo</td>
                <td><input type="text" name="txtcorreo" autocomplete="off"></td>
            </tr>
            <tr> 	
               <td colspan="2" >
				  <?php echo "<a href=\"index.php?pag=$pagina\">Cancelar</a>";?>
				   <input type="submit" name="btnregistrar" value="Registrar" onClick="javascript: return confirm('¿Deseas registrar a este usuario');">
			</td>
            </tr>
        </table>
    </form>
 </div>
</body>
</html>
<?php

		if(isset($_POST['btnregistrar']))
{   
	$vaiusu 	= $_POST['txtnom'];
	$vaidni 	= $_POST['txtdni'];
        $vaidir 	= $_POST['txtdir'];
	$vaitel 	= $_POST['txttel'];
        $vaiemail 	= $_POST['txtcorreo'];

	$queryadd	= mysqli_query($conn, "INSERT INTO usuarios(nom,dni,dir,tel,email) VALUES('$vaiusu','$vaidni','$vaidir','$vaitel','$vaiemail')");
	
 	if(!$queryadd)
	{
		// echo "Error con el registro: ".mysqli_error($conn);
		 echo "<script>alert('DNI duplicado, intenta otra vez');</script>";
		 
	}else
	{
		echo "<script>window.location= 'index.php?pag=1' </script>";
	}
}
?>
  • Ver.php
<?php 
include_once("conexion.php");
include_once("index.php");

$pagina = $_GET['pag'];
$coddni = $_GET['dni'];

$querybuscar = mysqli_query($conn, "SELECT * FROM usuarios WHERE dni=$coddni");
 
while($mostrar = mysqli_fetch_array($querybuscar))
{
	$usunom 	= $mostrar['nom'];
	$usudni 	= $mostrar['dni'];
        $usudir 	= $mostrar['dir'];
	$usutel 	= $mostrar['tel'];
        $usucorreo 	= $mostrar['email'];
}
?>
<html>
<head>    
		<title>VaidrollTeam</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="caja_popup2">
  <form class="contenedor_popup" method="POST">
        <table>
		<tr><th colspan="2">Ver usuario</th></tr>
            <tr> 
                <td>Nombre: </td>
                <td><?php echo $usunom;?></td>
            </tr>
			   <tr> 
                <td>DNI: </td>
                <td><?php echo $usudni;?></td>
            </tr>
        
            <tr> 
                <td>Dirección: </td>
                <td><?php echo $usudir;?></td>
            </tr>
			  <tr> 
                <td>Telefono: </td>
                <td><?php echo $usutel;?></td>
            </tr>
			  <tr> 
                <td>Correo: </td>
                <td><?php echo $usucorreo;?></td>
            </tr>
            <tr>
				
                <td colspan="2">
				 <?php echo "<a href=\"index.php?pag=$pagina\">Regresar</a>";?>
				</td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>
  • Editar.php
<?php 
include_once("conexion.php");
include_once("index.php");

$pagina = $_GET['pag'];
$coddni = $_GET['dni'];

$querybuscar = mysqli_query($conn, "SELECT * FROM usuarios WHERE dni=$coddni");
 
while($mostrar = mysqli_fetch_array($querybuscar))
{
	$usunom 	= $mostrar['nom'];
	$usudni 	= $mostrar['dni'];
        $usudir 	= $mostrar['dir'];
	$usutel 	= $mostrar['tel'];
        $usucorreo 	= $mostrar['email'];
}
?>
<html>
<head>    
		<title>VaidrollTeam</title>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="caja_popup2">
  <form class="contenedor_popup" method="POST">
        <table>
		<tr><th colspan="2">Modificar usuario</th></tr>
            <tr> 
                <td>Nombre</td>
                <td><input type="text" name="txtnom" value="<?php echo $usunom;?>" required></td>
            </tr>
			   <tr> 
                <td>DNI</td>
                <td><input type="number" name="txtdni" value="<?php echo $usudni;?>" required readonly></td>
            </tr>
        
            <tr> 
                <td>Dirección</td>
                <td><input type="text" name="txtdir" value="<?php echo $usudir;?>" required></td>
            </tr>
			  <tr> 
                <td>Telefono</td>
                <td><input type="number" name="txttel" value="<?php echo $usutel;?>" required></td>
            </tr>
			  <tr> 
                <td>Correo</td>
                <td><input type="text" name="txtcorreo" value="<?php echo $usucorreo;?>" required></td>
            </tr>
            <tr>
				
                <td colspan="2">
				 <?php echo "<a href=\"index.php?pag=$pagina\">Cancelar</a>";?>
				<input type="submit" name="btnmodificar" value="Modificar" onClick="javascript: return confirm('¿Deseas modificar este usuario?');">
				</td>
            </tr>
        </table>
    </form>
</div>
</body>
</html>

<?php
	
	if(isset($_POST['btnmodificar']))
{    
	$nom1 = $_POST['txtnom'];
	$dni1 = $_POST['txtdni'];
	$dir1 = $_POST['txtdir'];
	$tel1 = $_POST['txttel'];
	$correo1 = $_POST['txtcorreo'];
      
    $querymodificar = mysqli_query($conn, "UPDATE usuarios SET nom='$nom1',dni='$dni1',dir='$dir1',email='$correo1' WHERE dni=$dni1");
	echo "<script>window.location= 'index.php?pag=$pagina' </script>";
    
}
?>
	
  • Eliminar.php
<?php
include_once("conexion.php");

$pagina = $_GET['pag'];
$coddni = $_GET['dni'];

mysqli_query($conn, "DELETE FROM usuarios WHERE dni=$coddni");
 
header("Location:index.php?pag=$pagina");

?>
  • Style.css
body
{
        background: #f0f0f0;
	font-family: Arial, sans-serif;
	margin:0;
	padding:0;
	display: flex;
	flex-direction: column;	
}
table
{
	 border-collapse: collapse;
         width: 100%; 
}
th
{
	  background-color: #333333;
          color: white;
}

th, td 
{
	  padding: 10px;
          text-align: center;
          border-bottom: 1px solid #dddddd;
}
a,input[type="submit"]
{
	
	text-align:center;
	display: inline-block;
	background:green;
	padding: 6px 10px;
	border-radius:5px;
	text-decoration: none;
	color:white;
	border:2px solid black;
	cursor:pointer;
	font-size: 16px;
	
}

h1
{
	 font-family: sans-serif;
	 margin-top:5%;
         text-align: center;
         color: #333333;
}

.contenedor_popup 
{

	top: 50%;
	left: 50%;
	position: absolute;
	transform: translate(-50%,-50%);
	width:400px; 
	transition: all 0.2s;
	background-color:white;
}

.caja_popup2 
{
	display: block;
        position: absolute;
	padding:0;
	background-color:rgba(0, 0, 0, 0.5); 
	width:100%;
	height:100%;
}

input[type="text"],input[type="number"],input[type="email"]
{
	font-size:16px;
	background-color:white;
	color:black;
	padding: 6px 10px;
	border-radius:5px;
}

select
{
	width:80%;
	font-size: 14px;
}
.cont 
{
	 margin-left: auto;
	 margin-right: auto;
	 max-width:1260px;
         width: 100%; 
		
}




  • Nombre: VaidrollTeamCRUDPHP3.rar
  • Tamaño: 20 KB

 Descargar