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.
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ó)
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.