Listado completo de tutoriales

Temario del Tutorial53 - mysqli (POO) - alta tabla articulos


Ahora tenemos que implementar el alta en la tabla articulos, recordemos que la tabla articulos tiene los campos: codigo, descripcion, precio y codigo de rubro.

El codigo se genera automáticamente ya que es auto_increment, por teclado debemos ingresar la descripción del artículo, el precio y mediante un control HTML select debemos poder elegir el rubro al que pertenece dicho artículo.

Este formulario no es HTML puro ya que debemos poblar el control HTML select con los rubros.

Veamos el algoritmo de esta página:

pagina1.php

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Alta de artículo</title>
</head>

<body>
  <form method="post" action="pagina2.php">
    Ingrese descripcion del artículo:
    <input type="text" name="descripcion" required>
    <br>
    Ingrese precio:
    <input type="text" name="precio" required>
    <br>
    Seleccione rubro:
    <select name="codigorubro">
      <?php
      $mysql = new mysqli("localhost", "root", "", "base1");
      if ($mysql->connect_error)
        die("Problemas con la conexión a la base de datos");

      $registros = $mysql->query("select codigo,descripcion from rubros") or
        die($mysql->error);
      while ($reg = $registros->fetch_array()) {
        echo "<option value=\"" . $reg['codigo'] . "\">" . $reg['descripcion'] . "</option>";
      }
      ?>
    </select>
    <br>
    <input type="submit" value="confirmar">
  </form>
</body>

</html>

Lo más interesante de esta página es como procedemos a cargar todos los rubros en el control HTML de tipo select, en la propiedad value le asignamos el código de cada rubro y entre las marcas option mostramos la descripción del rubro:

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

      $registros = $mysql->query("select codigo,descripcion from rubros") or
        die($mysql->error);
      while ($reg = $registros->fetch_array()) {
        echo "<option value=\"" . $reg['codigo'] . "\">" . $reg['descripcion'] . "</option>";
      }
      ?>
    </select>

La segunda página es la que procede a efectuar el insert en la tabla articulos:

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Alta de artículo</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("insert into articulos(descripcion,precio,codigorubro) 
      values ('$_REQUEST[descripcion]',$_REQUEST[precio],$_REQUEST[codigorubro])") or
    die($mysql->error);

  echo 'El nuevo artículo se almacenó';
  ?>
</body>

</html>

Cuando llamamos al método query procedemos a generar un String con el comando insert indicando los campos descripcion, precio, codigorubro y los valores que rescatamos del formulario HTML:

  $mysql->query("insert into articulos(descripcion,precio,codigorubro) 
      values ('$_REQUEST[descripcion]',$_REQUEST[precio],$_REQUEST[codigorubro])") 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


Retornar