Temario del Tutorial55 - mysqli (POO) - consulta tabla articulos


Implementaremos el algoritmo para recuperar los datos de un artículo ingresando su código para su búsqueda.

Primero debemos definir un formulario donde ingresemos el código de artículo a consultar y llamar a otra página donde verificamos si existe dicho código de artículo y recuperamos simultáneamente la descripción del rubro que pertenece dicho artículo.

El formulario de consulta es:

<!doctype html>
<html>
<head>
  <title>Consulta de artículo</title>
</head>
<body>
  <form method="post"  action="pagina2.php">
    Ingrese el código del artículo a consultar:
    <input type="text" name="codigo" size="10" required>
    <br>
    <input type="submit" value="Consultar">
  </form>
</body>
</html>  

Y la pagina2.php donde hacemos la búsqueda es:

<!doctype html>
<html>
<head>
  <title>Consulta de artículos</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");
  
    $registros=$mysql->query("select ar.descripcion as descripcionart,
                                     precio,
                                     ru.descripcion as descripcionrub 
                                  from articulos as ar
                                  inner join rubros as ru on ru.codigo=ar.codigorubro
                                  where ar.codigo=$_REQUEST[codigo]") or
      die($mysql->error);
     
    if ($reg=$registros->fetch_array())
    {
      echo 'Descripción:'.$reg['descripcionart'].'<br>';      
      echo 'Precio:'.$reg['precio'].'<br>';            
      echo 'Rubro:'.$reg['descripcionrub'].'<br>';            
    }    
    else
      echo 'No existe un artículo con dicho código';
    
    $mysql->close();

  ?>  
</body>
</html>

En la consulta debemos extraer toda la fila de la tabla articulos que coincide con el código de artículo ingresado, y a su vez debemos recuperar la descripción del rubro de la tabla relacionada:

    $registros=$mysql->query("select ar.descripcion as descripcionart,
                                     precio,
                                     ru.descripcion as descripcionrub 
                                  from articulos as ar
                                  inner join rubros as ru on ru.codigo=ar.codigorubro
                                  where ar.codigo=$_REQUEST[codigo]") or
      die($mysql->error);

Creamos alias para las columnas llamadas descripción de las tablas articulos y rubros, con esto evitamos ambigüedades al hacer referencia a dichos campos.

El where nos permite solo extraer la fila que coincide con el código ingresado por el usuario y no todas las filas como hemos hecho en el listado.

Mediante un if verificamos mediante la llamada al método fetch_array si se recuperó una fila con el select, en caso afirmativo se ejecuta el bloque del verdadero del if donde mostramos los datos que quedaron almacenados en el vector $reg.



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

Problema propuesto.

Implementar la consulta de un artículo por su descripción. En un formulario el usuario ingresa la descripción y luego si existe se muestra su código, precio y rubro al que pertenece.

Solución
pagina1.php

Ejecutar ejemplo
pagina2.php

Retornar