Resultado de imagen para crud
Esta es una aplicación CRUD simple en PHP y MySQL. En este tutorial, puede aprender operaciones CRUD en PHP y MySQL. CRUD significa crear, leer, actualizar y eliminar.  .

Crear significa insertar datos en la base de datos utilizando INSERT instrucción SQL.  

Leer significa leer datos de la base de datos utilizando SELECT instrucción SQL.  

Actualizar significa actualizar registros usando UPDATE SQL query.  

Finalmente, Eliminar significa eliminar datos de la base de datos utilizando DELETE declaraciones SQL.Aquí voy a crear cuatro archivos PHP, cada archivo PHP es para crear, leer, actualizar, eliminar funciones. Y estoy creando una tabla con columnas simples first_name, last_name, gender, age, email_id.Usando estos cuatro archivos, insertaré datos en la base de datos (C), leyendo datos de la base de datos (R), actualizando datos en la base de datos (U), borrando datos de la base de datos (D).Y nombraré estos archivos en terminología simple

    
C - Crear: index.php - Para insertar datos en la base de datos (INSERT SQL Query).
    
R - Read: view.php - Para leer datos de la base de datos (SELECT SQL Query).
    
U - Update: upate.php - Para actualizar los datos en la base de datos (UPDATE SQL Query).
    
D - Eliminar: delete.php - Para borrar datos en la base de datos (DELETE SQL Query).

Antes que nada, te mostraré las consultas SQL. Si comprende estas consultas, entonces es fácil para usted escribir la aplicación CRUD.
 
INSERTAR consulta SQL

INSERT SQL Query se usa para INSERTAR datos en la base de datos simplemente pasando nombres de columnas y datos junto con el nombre de la tabla.

 
SELECT SQL Query

SELECT SQL Query se usa para SELECCIONAR datos de la base de datos simplemente pasando el nombre de la tabla de la base de datos. Y podemos filtrar los resultados utilizando la cláusula WHERE también. Podemos reordenarlos en orden ascendente y descendente.

 
ACTUALIZAR consulta SQL

UPDATE SQL Query se usa para ACTUALIZAR datos en la base de datos al pasar nombres de columna y valores con la cláusula WHERE que identifica la fila.


DELECT SQL Query

ELIMINAR consulta SQL se utiliza para ELIMINAR datos de la base de datos simplemente utilizando la cláusula WHERE para identificar la fila.

1. Crear una tabla de base de datos 

CREATE TABLE `crud` (
  `id` int(11) NOT NULL,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `gender` varchar(255) NOT NULL,
  `age` varchar(255) NOT NULL,
  `email_id` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `crud`
  ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for table `crud`
--

ALTER TABLE `crud`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; 
 
2. Conexión a la tabla de la base de datos usando el archivo connect.php

<?php
$connection = mysqli_connect('localhost', 'root', 'password');
if (!$connection){
    die("Database Connection Failed" . mysqli_error($connection));
}
$select_db = mysqli_select_db($connection, 'project');
if (!$select_db){
    die("Database Selection Failed" . mysqli_error($connection));
}
 
3. Crear el formulario HTML de index.php

 <!DOCTYPE html>
<html>
<head>
    <title>Simple CRUD Application - CREATE</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" >

<link rel="stylesheet" href="styles.css" >

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <div class="row">
        <form method="post" class="form-horizontal col-md-6 col-md-offset-3">
        <h2>Create Operation in CRUD Application</h2>
            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">First Name</label>
                <div class="col-sm-10">
                  <input type="text" name="fname"  class="form-control" id="input1" placeholder="First Name" />
                </div>
            </div>

            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">Last Name</label>
                <div class="col-sm-10">
                  <input type="text" name="lname"  class="form-control" id="input1" placeholder="Last Name" />
                </div>
            </div>

            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">E-Mail</label>
                <div class="col-sm-10">
                  <input type="email" name="email"  class="form-control" id="input1" placeholder="E-Mail" />
                </div>
            </div>

            <div class="form-group" class="radio">
            <label for="input1" class="col-sm-2 control-label">Gender</label>
            <div class="col-sm-10">
              <label>
                <input type="radio" name="gender" id="optionsRadios1" value="male" checked> Male
              </label>
                    <label>
                <input type="radio" name="gender" id="optionsRadios1" value="female"> Female
              </label>
            </div>
            </div>

            <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Age</label>
            <div class="col-sm-10">
                <select name="age" class="form-control">
                    <option>Select Your Age</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                </select>
            </div>
            </div>
            <input type="submit" class="btn btn-primary col-md-2 col-md-offset-10" value="submit" />
        </form>
    </div>
</div>
</body>
</html>

4. INSERTAR datos en la base de datos   
Primero, incluya el archivo connect.php en el archivo index.php utilizando la función require_once de PHP. 

require_once ('connect.php');


Luego, compruebe POST super global usando if condition y isset, empty PHP functions. A continuación, asigne valores de formulario a las variables, mientras que la asignación de estos valores a las variables utiliza la función mysqli_real_escape_string para quitar los datos de los campos de entrada.

if(isset($_POST) & !empty($_POST)){
    $fname = mysql_real_escape_string($_POST['fname']);
    $lname = mysql_real_escape_string($_POST['lname']);
    $email = mysql_real_escape_string($_POST['email']);
    $gender = $_POST['gender'];
    $age = $_POST['age'];

Luego, después de asignar estos valores a las variables, escriba una consulta SQL para insertar datos en la base de datos.

$CreateSql = "INSERT INTO` crud` (first_name, last_name, email_id, gender, age) VALUES ('$fname', '$lname', '$email', '$gender', '$age') ";

Ejecute esto INSERT SQL Query usando la función PHP mysqli_query. Luego asigne esto a res variables.

$res = mysqli_query ($connection, $CreateSql) o die (mysqli_error ($connection));1

 
Verifique estas variables de res con condición if, si la consulta se inserta con éxito, luego muestre el mensaje de éxito en las secciones del cuerpo o muestre un mensaje de falla en la sección del cuerpo. Estoy usando dos fmsg variables (mensaje de falla) y smsg (mensaje de éxito).

 
if ($ res) {$smsg = "Datos insertados con éxito, Insertar datos nuevos.";}más{$fmsg = "Datos no insertados, inténtelo de nuevo más tarde.";}

Muestre estos mensajes de error dentro de la sección del cuerpo, agregue este código arriba de la etiqueta de apertura del formulario. 

<?php if(isset($smsg)){ ?><div class="alert alert-success" role="alert"> <?php echo $smsg; ?> </div><?php } ?>

<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?> 

5. Crear archivo HTML view.php 
 <!DOCTYPE html>
<html>
<head>
    <title>Simple CRUD Application - READ Operation</title>
    <!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" >

<link rel="stylesheet" href="styles.css" >

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <div class="row">
    <h2>Read Operation in CRUD applicaiton</h2>
        <table class="table ">
        <thead>
            <tr>
                <th>#</th>
                <th>Full Name</th>
                <th>E-Mail</th>
                <th>Age</th>
                <th>Gender</th>
                <th>Extras</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th scope="row">1</th>
                <td>Vivek Vengala</td>
                <td>vivek@pixelw3.com</td>
                <td>Male</td>
                <td>28</td>
                <td>
                    <a href="update.php"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></a>
                    <a href="delete.php"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
                </td>
            </tr>
        </tbody>
        </table>
    </div>
</div>
</body>
</html>

6. Obtener datos de la base de datos en el archivo view.php
 Incluya el archivo connect.php en el archivo view.php para conectarse a la base de datos. 

require_once('connect.php'); 

Luego de leer los datos de la base de datos, debemos escribir una consulta SQL que sea SELECT SQL Query. Aquí estoy seleccionando todas las filas de la base de datos usando el nombre de la tabla, no estoy limitando el número de filas para recuperar. Si lo deseas, puedes usarlo, pero aquí no tengo muchas filas. 

$ReadSql = "SELECT * FROM `crud`";

 Ejecute esta SELECT SQL Query usando la función mysqli_query PHP, almacene esta variable de res de datos.


$res = mysqli_query($connection, $ReadSql);

Nuevamente usando while loop, buscaremos los datos y repetiremos estos datos en nuestra tabla de datos HTML.

         <?php
        while($r = mysqli_fetch_assoc($res)){
        ?>
            <tr>
                <th scope="row"><?php echo $r['id']; ?></th>
                <td><?php echo $r['first_name'] . " " . $r['last_name']; ?></td>
                <td><?php echo $r['email_id']; ?></td>
                <td><?php echo $r['gender']; ?></td>
                <td><?php echo $r['age']; ?></td>
                <td>
                    <a href="update.php?id=<?php echo $r['id']; ?>"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></a>
                    <a href="delete.php?id=<?php echo $r['id']; ?>"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></a>
                </td>
            </tr>
        <?php } ?>

 7. Crea el archivo HTML update.php

Para el archivo update.php, voy a usar el mismo código HTML que el archivo index.php. Porque, en la operación UPDATE, obtendremos los datos de la base de datos para una fila específica basada en el id. Luego, el usuario edita el valor y envía el formulario, luego de que ese script actualice los valores en la base de datos.

En el archivo anterior view.php, ya he creado enlaces para archivos edit.php y delete.php que también pasan valores de identificación de la base de datos. Si alguien hace clic en los enlaces, estos id se pasarán al siguiente archivo que sea edit.php o delete.php.

 <!DOCTYPE html>
<html>
<head>
    <title>Simple CRUD Application - UPDATE Operation</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" >

<link rel="stylesheet" href="styles.css" >

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <div class="row">
        <form method="post" class="form-horizontal col-md-6 col-md-offset-3">
        <h2>UPDATE Operation in CRUD Application</h2>
            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">First Name</label>
                <div class="col-sm-10">
                  <input type="text" name="fname"  class="form-control" id="input1" placeholder="First Name" />
                </div>
            </div>

            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">Last Name</label>
                <div class="col-sm-10">
                  <input type="text" name="lname"  class="form-control" id="input1" placeholder="Last Name" />
                </div>
            </div>

            <div class="form-group">
                <label for="input1" class="col-sm-2 control-label">E-Mail</label>
                <div class="col-sm-10">
                  <input type="email" name="email"  class="form-control" id="input1" placeholder="E-Mail" />
                </div>
            </div>

            <div class="form-group" class="radio">
            <label for="input1" class="col-sm-2 control-label">Gender</label>
            <div class="col-sm-10">
              <label>
                <input type="radio" name="gender" id="optionsRadios1" value="male" checked> Male
              </label>
                    <label>
                <input type="radio" name="gender" id="optionsRadios1" value="female"> Female
              </label>
            </div>
            </div>

            <div class="form-group">
            <label for="input1" class="col-sm-2 control-label">Age</label>
            <div class="col-sm-10">
                <select name="age" class="form-control">
                    <option>Select Your Age</option>
                    <option value="20">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                </select>
            </div>
            </div>
            <input type="submit" class="btn btn-primary col-md-2 col-md-offset-10" value="submit" />
        </form>
    </div>
</div>
</body>
</html>


 8. Obtener datos en formato HTML desde la base de datos

Junto a buscar datos en formato HTML, tenemos que escribir SELECT SQL Query para obtener datos de la base de datos en función de la identificación que estamos pasando desde el archivo view.php.

Y también para hacer eco de los datos de la base de datos, es fácil para campos de texto de entrada. Pero, es un poco complicado para los botones de radio y también para seleccionar la lista. Voy a cubrirlos en este paso.

Primero seleccione los datos usando id, que obtuvimos de GET super global.

require_once('connect.php');
Asigna la id a la variable id usando GET superglobal.

$id = $_GET['id'];
Escribir SELECT SQL Query basado en el valor de id.
 $SelSql = "SELECT * FROM `crud` WHERE id=$id";
 Ejecute esta SELECT SQL Query usando la función mysqli_query PHP. Y asignarlo a la variable res.
 $res = mysqli_query($connection, $SelSql);
Oculte este resultado en una matriz asociativa utilizando la función PHP de mysqli_fetch_assoc.
 
 $r = mysqli_fetch_assoc($res);
 Imprima esta información en los campos de entrada, a continuación puede ver el código de visualización de first_name, last_name y valores de correo electrónico en los campos de entrada.

Para mostrar el valor del campo de entrada de Nombre.

 <input type="text" name="fname"  class="form-control" id="input1" value="<?php echo $r['first_name']; ?>" placeholder="First Name" />
Para mostrar el valor del campo de entrada del apellido.
 
<input type="text" name="lname"  class="form-control" id="input1" value="<?php echo $r['last_name']; ?>" placeholder="Last Name" /> 
 Para mostrar el valor del campo de entrada de correo electrónico.
 <input type="email" name="email"  class="form-control" id="input1" value="<?php echo $r['email_id']; ?>" placeholder="E-Mail" />
Para mostrar el valor del Campo de entrada de Radio de Género.
Para verificar los botones de radio en función del valor, necesitamos verificar el valor usando la condición if. Si el valor es verdadero, seleccionaremos el botón de radio. Aquí está el código.

 <input type="radio" name="gender" id="optionsRadios1" value="male" <?php if($r['gender'] == 'male'){ echo "checked";} ?>> Male
<input type="radio" name="gender" id="optionsRadios1" value="female" <?php if($r['gender'] == 'female'){ echo "checked";} ?>> Female 
 Para mostrar el valor del campo de la lista de selección de edad.
Para seleccionar el valor de la lista de selección, utilizaremos el mismo código que los botones de opción.

<select name="age" class="form-control">
    <option>Select Your Age</option>
    <option value="20" <?php if($r['age'] == '20'){ echo "selected";} ?> >20</option>
    <option value="21" <?php if($r['age'] == '21'){ echo "selected";} ?> >21</option>
    <option value="22" <?php if($r['age'] == '22'){ echo "selected";} ?> >22</option>
    <option value="23" <?php if($r['age'] == '23'){ echo "selected";} ?> >23</option>
    <option value="24" <?php if($r['age'] == '24'){ echo "selected";} ?> >24</option>
    <option value="25" <?php if($r['age'] == '25'){ echo "selected";} ?> >25</option>
</select> 

9. Actualizar datos en la base de datos

A continuación, si el usuario envía el formulario, después de editar los valores. Entonces los datos deberían insertarse en la base de datos. Voy a escribir el código para este propósito.

Verifica si post superglobal está configurado y no está vacío. Si es verdadero, entonces asigne los valores a las variables.


 if(isset($_POST) & !empty($_POST)){
    $fname = mysql_real_escape_string($_POST['fname']);
    $lname = mysql_real_escape_string($_POST['lname']);
    $email = mysql_real_escape_string($_POST['email']);
    $gender = $_POST['gender'];
    $age = $_POST['age'];
}
 

Luego escriba una consulta SQL para actualizar los datos en la base de datos. A continuación se encuentra la consulta SQL de ACTUALIZACIÓN.

$UpdateSql = "UPDATE `crud` SET first_name='$fname', last_name='$lname', gender='$gender', age=$age, email_id='$email' WHERE id=$id";


A continuación, ejecute esta consulta SQL utilizando la función PHP mysqli_query. Y almacenarlo en la variable res.


$res = mysqli_query($connection, $UpdateSql);

Usando la variable res, podemos verificar que la consulta de ACTUALIZACIÓN sea exitosa o no. Si la actualización fue exitosa, redirigiremos al usuario al archivo view.php. De lo contrario, mostraremos un mensaje de error al usuario.
 if($res){
    header('location: view.php');
}else{
    $fmsg = "Failed to update data.";
}

  Después de eso, tenemos que mostrar este mensaje de error dentro de la sección del cuerpo. Agregue esta línea de código debajo de la etiqueta de apertura de formulario.
<?php if(isset($fmsg)){ ?><div class="alert alert-danger" role="alert"> <?php echo $fmsg; ?> </div><?php } ?>

 10. Agregar ventana emergente Eliminar en el archivo view.php

Antes de borrar el registro, quiero mostrar un mensaje emergente después de hacer clic en el botón Eliminar. Este mensaje emergente contiene dos botones con texto. Si el usuario hace clic en eliminar, el registro se eliminará de la base de datos.

De lo contrario, si el usuario hace clic en el botón cancelar, se cancelará la operación de eliminación.

Tenemos que agregar este código en el archivo view.php para mostrar la ventana emergente.

Agregue este archivo jQuery en la sección principal.

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </ script>

A continuación, agregue este código en el lado de nuestro ciclo while después del icono de edición. Aquí estoy eliminando el ícono de eliminar y convirtiéndolo en un botón.


<button type="button" class="btn btn-info btn-xs" data-toggle="modal" data-target="#myModal<?php echo $r['id']; ?>">Delete</button>

<!-- Modal -->
  <div class="modal fade" id="myModal<?php echo $r['id']; ?>" role="dialog">
    <div class="modal-dialog">
   
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Delete File</h4>
        </div>
        <div class="modal-body">
          <p>Are you sure?</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
          <a href="delete.php?id=<?php echo $r['id']; ?>"><button type="button" class="btn btn-danger"> Yes..! Delete</button></a>
        </div>
      </div>
     
    </div>
  </div> 


11. Eliminar registros de la base de datos utilizando el archivo
 delete.php 

Luego, después de hacer clic en el botón Eliminar, el usuario será redireccionado al archivo delete.php con id en URL. Eliminaremos el recodificado en el archivo delete.php.Si el registro se elimina con éxito, redirigiremos al usuario al archivo view.php. De lo contrario, mostraremos un mensaje de error al usuario.Conéctese a la base de datos usando el archivo connect.php, simplemente incluya este archivo usando la función require_once de PHP.

require_once ('connect.php');

 
Asigna el valor de id a la variable id de get superglobal.

$ id = $ _GET ['id'];

 
Escriba SQL Query para deltear datos de la base de datos.

$ DelSql = "ELIMINAR DE 'crud` WHERE id = $ id";

 
Ejecute esta consulta utilizando la función mysqli_query PHP, almacene esta variable res.

$ res = mysqli_query ($ conexión, $ DelSql);


 Si el resultado es exitoso, redirigiremos al usuario al archivo view.php. De lo contrario, mostraremos un mensaje de error al usuario.

if ($ res) {header ('ubicación: view.php');}más{echo "Falló la eliminación";} 


Hasta ahora, hemos creado con éxito la aplicación CRUD en PHP y MySQL. Si tiene algún problema, hágamelo saber a través del formulario de comentarios a continuación.

Espero les haya sido de ayuda y esperamos lo compartan y dejen su comentario