Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SESIÓN 25
PANEL PARA ABM DE LA TABLA ARTICULOS
V-25-1
1. MYSQLI - BORRADO DE UN REGISTRO DE LA TABLA ARTICULOS
Para borrar un artículo debemos implementar un formulario donde se ingrese por teclado el código
de articulo y seguidamente un algoritmo que verifique si existe dicho artículo y proceda a su
borrado llamando al comando SQL delete.
pagina1.php
<!doctype html>
<html>
<head>
<title>Borrado de un artículo</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese el código de artículo a borrar:
<input type="text" name="codigo" size="10" required>
<br>
<input type="submit" value="Consultar">
</form>
</body>
</html>
pagina2.php
<!doctype html>
<html
>
<head>
<title>Borrado de un artículo</title>
</
head>
<body>
<?php
$con=mysqli_connect("localhost","root","","base1")
or die("Problemas con la conexión a la base de
datos");
if ($reg=mysqli_fetch_array($registro))
{
mysqli_query($con,"delete from articulos where codigo=$_REQUEST[codigo]")
or die(mysqli_error($con));
echo 'La descripción del artículo que se eliminó es:'.$reg['descripcion'];
}
else
echo 'No existe un artículo con dicho
código'; mysqli_close($con);
Steve Jobs – Juntos hacia tu éxito 1
PHP
?>
</body>
</html>
En caso afirmativo procedemos a ejecutar el comando SQL delete y mostrar la descripción del
artículo borrado:
if ($reg=mysqli_fetch_array($registro))
{
mysqli_query($con,"delete from articulos where codigo=$_REQUEST[codigo]") or
die(mysqli_error($con));
echo 'La descripción del artículo que se eliminó es:'.$reg['descripcion'];
V-25-2
2. PANEL PARA ABM DE LA TABLA ARTICULOS
Para modificar los datos de un artículo implementaremos un algoritmo que solicite el ingreso del
codigo de artículo que queremos modificar, en caso que exista permitiremos cambiar su
descripción, precio y rubro.
Para poder cambiar el rubro debemos mostrar el rubro actual en un control select.
Crearemos tres páginas. La primera donde el operador ingresa el codigo de artículo que quiere
modificar, la segunda página mostraremos un formulario HTML con los datos precargados y
finalmente la tercer página tendrá como objetivo ejecutar el comando SQL update.
El primer formulario solicita la carga del código del artículo que queremos modificar sus datos:
pagina1.php
<!doctype html>
<html>
<head>
<title>Modificación de artículo</title>
</head>
<body>
<form method="post" action="pagina2.php">
Ingrese el código de artículo a modificar:
<input type="text" name="codigo" size="10" required>
<br>
<input type="submit" value="Consultar">
</form>
</body>
</html>
Lo más importante aparece en el segundo formulario donde debemos mostrar precargados los
datos actuales:
pagina2.php
<!doctype html>
<html>
<head>
<title>Modificación de artículo.</title>
</head>
<body>
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
if ($reg=mysqli_fetch_array($registro))
{
?>
<form method="post" action="pagina3.php">
Descripción del artículo:
<input type="text" name="descripcion" size="50" value="<?php echo $reg['descripcion']; ?>">
<br>
Precio
<input type="text" name="precio" size="10" value="<?php echo $reg['precio']; ?>">
<br>
Rubro:
<select name="codigorubro">
<?php
$registros2=mysqli_query($con,"select codigo,descripcion from rubros") or
die(mysqli_error($con));
while ($reg2=mysqli_fetch_array($registros2))
{
if ($reg2['codigo']==$reg['codigorubro'])
echo "<option value=\"".$reg2['codigo']."\" selected>".$reg2['descripcion']."</option>";
else
echo "<option value=\"".$reg2['codigo']."\">".$reg2['descripcion']."</option>";
}
?>
</select>
mysqli_close($con);
?>
</body>
</html>
En esta segunda página lo primero que hacemos es buscar si existe un artículo con dicho código:
if ($reg=mysqli_fetch_array($registro))
{
En caso afirmativo, es decir ingresa por el verdadero del if procedemos a mostrar en las
propiedades value la descripción y precio del artículo consultado.
Pero para mostrar todos los rubros debemos hacer una nueva consulta a la otra tabla (rubros)
donde con los datos rescatados generamos todas las opciones del control HTML select en forma
similar al algoritmo de altas:
<select name="codigorubro">
<?php
$registros2=mysqli_query($con,"select codigo,descripcion from rubros") or
die(mysqli_error($con));
while ($reg2=mysqli_fetch_array($registros2))
{
if ($reg2['codigo']==$reg['codigorubro'])
echo "<option value=\"".$reg2['codigo']."\" selected>".$reg2['descripcion']."</option>";
else
echo "<option value=\"".$reg2['codigo']."\">".$reg2['descripcion']."</option>";
}
?>
</select>
La única diferencia es que como debemos mostrar seleccionado el rubro actual del artículo
mediante un if controlamos cada código de rubro de la tabla "rubros" con el código de rubro del
artículo seleccionado. Aquel que coincida procedemos a agregarle la propiedad selected a la
marca option respectiva.
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
mysqli_close($con);
?>
</body>
</html>
V-25 (3-4-5-6-7)
3. MYSQLI - PANEL PARA CONTROL DE LA TABLA ARTICULOS
Ahora implementaremos una serie de páginas para administrar la tabla artículos. Mostraremos en
una tabla HTML todos los registros de articulos y un hipervínculo para borrar y otro para modificar
los datos.
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
mysqli_close($con);
?>
</body>
</html>
Como podemos ver hemos agregado dos columnas en la tabla como diferencia con el concepto
de listado que habíamos analizado.
La columna Borrar tiene por objetivo llamar a la página bajaarticulo.php pasando como parámetro
el código de artículo que queremos borrar. Como podemos luego probar cuando pasamos la
flecha del mouse sobre cada enlace "Borra?" veremos que el parámetro codigo es distinto para
cada artículo.
Veamos ahora la página bajaarticulo.php, esta tiene por objetivo eliminar el artículo, el código
fuente de esta página es:
bajaarticulo.php
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
mysqli_close($con);
header('Location:mantenimientoarticulos.php');
?>
Como podemos ver hemos implementado una página PHP pura, es decir no hay salida HTML. En
esta página procedemos a borrar el registro de la tabla articulos teniendo en cuenta el codigo que
llega como parámetro y lo recuperamos del vector asociativo $_REQUEST.
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
if ($reg=mysqli_fetch_array($registro))
{
?>
<form method="post" action="modificacionarticulo2.php">
Descripción del artículo:
<input type="text" name="descripcion" size="50" value="<?php echo $reg['descripcion']; ?>">
<br>
Precio
<input type="text" name="precio" size="10" value="<?php echo $reg['precio']; ?>">
<br>
Rubro:
<select name="codigorubro">
<?php
$registros2=mysqli_query($con,"select codigo,descripcion from rubros") or
die(mysqli_error($con));
while ($reg2=mysqli_fetch_array($registros2))
{
if ($reg2['codigo']==$reg['codigorubro'])
echo "<option value=\"".$reg2['codigo']."\" selected>".$reg2['descripcion']."</option>";
else
echo "<option value=\"".$reg2['codigo']."\">".$reg2['descripcion']."</option>";
}
?>
</select>
mysqli_close($con);
?>
</body>
</html>
modificacionarticulo2.php
<?php
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
mysqli_close($con);
header('Location:mantenimientoarticulos.php');
?>
<!doctype html>
<html>
<head>
<title>Alta de artículo</title>
</head>
<body>
<form method="post" action="altaarticulo2.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
$con=mysqli_connect("localhost","root","","base1") or
die("Problemas con la conexión a la base de datos");
$registros=mysqli_query($con,"select codigo,descripcion from rubros") or
die(mysqli_error($con));
while ($reg=mysqli_fetch_array($registros))
{
echo "<option value=\"".$reg['codigo']."\">".$reg['descripcion']."</option>";
}
?>
</select>
<br>
<input type="submit" value="confirmar">
</form>
</body>
</html>
mysqli_close($con);
header('Location:mantenimientoarticulos.php');
?>