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:

<!doctype html>
<html>
<head>
  <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>
  <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>
  <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 NotePad++ y grabarlo en la carpeta c:\wamp\www con un nombre con extensión php (si hay varios cuadros de texto grabar cada uno en un archivo distinto).
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