Listado completo de tutoriales

Temario del Tutorial52 - mysqli (POO) - modificación de un registro de la tabla rubros


Procederemos ahora a implementar el algoritmo para modificar datos de una tabla.

Ingresaremos el código de rubro, en el caso que exista procederemos a mostrar en un control HTML text la descripción del rubro para que el usuario pueda modificarlo y seguidamente registraremos el cambio en la tabla rubros.

Debemos implementar tres páginas: una que es el formulario donde ingresamos el código de rubro a modificar, la segunda página es otro formulario donde cargamos la descripción actual del rubro y finalmente la tercer página donde procedemos a efectuar la modificación mediante el comando SQL update.

La primer página tiene por objetivo ingresar por teclado el código del rubro a buscar:

pagina1.html

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Modificación de rubro</title>
</head>

<body>
  <form method="post" action="pagina2.php">
    Ingrese el código de rubro a modificar:
    <input type="text" name="codigo" size="10" required>
    <br>
    <input type="submit" value="Consultar">
  </form>
</body>

</html>

Luego la segunda página busca la descripción del rubro y procede a mostrarla precargada en un control HTML de tipo text:

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Modificación de rubro.</title>
</head>

<body>

  <?php
  $mysql = new mysqli("localhost", "root", "", "base1");
  if ($mysql->connect_error)
    die("Problemas con la conexión a la base de datos");

  $registro = $mysql->query("select descripcion from rubros where codigo=$_REQUEST[codigo]") or
    die($mysql->error);

  if ($reg = $registro->fetch_array()) {
    ?>
    <form method="post" action="pagina3.php">
      Descripción del rubro:
      <input type="text" name="descripcion" size="50" value="<?php echo $reg['descripcion']; ?>">
      <input type="hidden" name="codigo" value="<?php echo $_REQUEST['codigo']; ?>">
      <br>
      <input type="submit" value="Confirmar">
    </form>
  <?php
  } else
    echo 'No existe un rubro con dicho código';

  $mysql->close();

  ?>
</body>

</html>

Como vemos si ingresa al if procedemos a crear un formulario HTML con un elemento text que inicializamos la propiedad value con la descripción actual del rubro. Y en un control de tipo hidden almacenamos el código del rubro ingresado en el formulario anterior para poder pasarlo a la siguiente página (sino no podríamos saber el código del rubro que queremos modificar):

      <input type="text" name="descripcion" size="50" value="<?php echo $reg['descripcion']; ?>">
      <input type="hidden" name="codigo" value="<?php echo $_REQUEST['codigo']; ?>">     

La última página procedemos a efectuar el update de la tabla rubros tomando como datos los dos elementos del formulario (text y el hidden):

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Modificación de rubro.</title>
</head>

<body>

  <?php
  $mysql = new mysqli("localhost", "root", "", "base1");
  if ($mysql->connect_error)
    die("Problemas con la conexión a la base de datos");

  $mysql->query("update rubros set descripcion='$_REQUEST[descripcion]' 
                          where codigo=$_REQUEST[codigo]") or
    die($mysql->error);

  echo 'Se modificó la descripción del rubro';

  $mysql->close();

  ?>
</body>

</html>

En esta última página procedemos a efectuar el update en la tabla rubros:

    $mysql->query("update rubros set descripcion='$_REQUEST[descripcion]' 
                          where codigo=$_REQUEST[codigo]") or
      die($mysql->error);


Problema resuelto.

Copiar el contenido de este cuadro de texto al VS Code y almacenarlo en la carpeta c:\xampp\htdocs con un nombre con extensión php.
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear:
http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

pagina2.php


pagina3.php


Retornar