En el siguiente programa podremos observar el método de utilización de los archivos en PHP aplicados en un ejemplo real con el fin de manejar diferentes funcionalidades y almacenamientos de datos.
A continuación se mostrará el código de una de las partes del programa. Las demás partes son similares a este en tema de funcionalidad y estructura con la ligera diferencia de nombres de variables y archivos.
Código HTML:
<HTML>
<head>
</head>
<script>
function f_guardar()
{
// alert("hola 1");
op.value=1;
}
function f_mostrar()
{
// alert("hola 2");
op.value=2;
}
function f_buscar()
{
// alert("hola 3");
op.value=3;
}
</script>
<BODY>
<H2> MANTENIMIENTO DE MARCA</H2>
<form id="form1" name="form1" method=POST
action="marcaResultado.php">
CODIGO:
<input type="TEXT" name="codigo">
</label> <p>
DESCRIPCION:
<input type="TEXT" name="descripcion">
</label> <p>
<input type="hidden" name="op" id="op">
<input type="SUBMIT" value="GUARDAR" NAME="GUARDAR" onClick="f_guardar()">
<input type="SUBMIT" value="MOSTRAR" NAME="MOSTRAR" onClick="f_mostrar()">
<input type="SUBMIT" value="BUSCAR" NAME="BUSCAR" onClick="f_buscar()">
</form>
</BODY>
</HTML>
Código PHP:
<?php
echo "MANTENIMIENTO DE MARCA<br>";
$op=$_POST["op"];
$vcodigo=$_POST["codigo"];
$vdes=$_POST["descripcion"];
if($op==1) // PROCESO GUARDAR
{
echo "codigo: " . $vcodigo. "<br>";
echo "marca: " . $vdes. "<br>";
$file = "marca.dat"; // nombre del archivo
$registro = $vcodigo . "/". $vdes . "\n" ;
$fp = fopen($file, "a"); // agregar // append
fwrite($fp, $registro);
fclose($fp);
echo "Registro guardado!!!";
}
if($op==2) // PROCESO MOSTRAR
{
echo "codigo: " . $vcodigo. "<br>";
$file = "marca.dat";
$fp = fopen($file, "r"); // read //leer
while(!feof($fp))
{
$texto= fgets($fp);
echo $texto . "<BR>";
}
fclose($fp);
}
if($op==3) // PROCESO buscar
{
$flip=0; // 1/HP
echo "codigo: " . $vcodigo. "<br>";
$file = "marca.dat";
$fp = fopen($file, "r");
while(!feof($fp))
{
$texto= fgets($fp);
// echo $texto . "<BR>";
$n=strlen($texto);
$sw=0;
$cod="";
$des="";
for($i=0;$i<$n;$i++)
{
$c=substr($texto,$i,1);
// echo $c . "<br>";
if($c=="/")
{
$sw=1;// $sw++;
}
if($sw==0)
{
$cod=$cod . $c;
}
if($sw==1)
{
$des=$des . $c;
}
}
if($cod == $vcodigo)
{
echo $cod . "<br>";
echo $des . "<br>";
$flip=1;
}
}
if($flip==0)
{
echo "registro NO encontrado!!!! <br>";
}
fclose($fp);
}
?>
Ese es el ejemplo de una de las funcionalidades básicas de almacenamiento. A continuación se mostrará la parte que reúne todos los datos y forma listas con ellos.
Código HTML:
<HTML>
<head>
</head>
<script>
function f_guardar()
{
// alert("hola 1");
op.value=1;
}
function f_mostrar()
{
// alert("hola 2");
op.value=2;
}
function f_buscar()
{
// alert("hola 3");
op.value=3;
}
</script>
<BODY>
<H2> MANTENIMIENTO DE PRODUCTO</H2>
<form id="form1" name="form1" method=POST
action="mproducto.php">
CODIGO:
<input type="TEXT" name="codigo">
</label> <p>
NOMBRE:
<input type="TEXT" name="descripcion">
</label> <p>
PRECIO:
<input type="TEXT" name="precio">
</label> <p>
<?php
echo "MARCA: ";
echo "<select name='marca'>";
$file = "marca.dat";
$fp = fopen($file, "r"); // read //leer
$k=0;
while(!feof($fp))
{
$texto= fgets($fp);
// echo $texto . "<BR>";
$n=strlen($texto);
$sw=0;
$cod="";
$des="";
for($i=0;$i<$n;$i++)
{
$c=substr($texto,$i,1);
// echo $c . "<br>";
if($c=="/")
{
$sw=1;// $sw++;
}
if($sw==0)
{
$cod=$cod . $c;
}
if($sw==1)
{
$des=$des . $c;
}
}
$Vec_codigo[$k]= $cod;
$Vec_des[$k]= $des;
$k++;
}
for($i=0;$i<$k-1;$i++)
{
for($j=$i+1;$j<$k;$j++)
{
if($Vec_des[$i] > $Vec_des[$j])
{
$aux=$Vec_des[$i];
$Vec_des[$i]= $Vec_des[$j];
$Vec_des[$j]=$aux;
}
}
}
echo "<br> DATOS ORDENADOS <BR>";
for($i=0;$i<$k;$i++)
{
echo "<option>". $Vec_des[$i] . "</option>";
//echo $Vec_des[$i] . "<br>";
}
fclose($fp);
echo "</select>";
echo "<p>";
echo "CATEGORIA: ";
echo "<select name='categoria'>";
$file = "categoria.dat";
$fp = fopen($file, "r"); // read //leer
$k=0;
while(!feof($fp))
{
$texto= fgets($fp);
// echo $texto . "<BR>";
$n=strlen($texto);
$sw=0;
$cod="";
$des="";
for($i=0;$i<$n;$i++)
{
$c=substr($texto,$i,1);
// echo $c . "<br>";
if($c=="/")
{
$sw=1;// $sw++;
}
if($sw==0)
{
$cod=$cod . $c;
}
if($sw==1)
{
$des=$des . $c;
}
}
$Vec_codigo[$k]= $cod;
$Vec_des[$k]= $des;
$k++;
}
for($i=0;$i<$k-1;$i++)
{
for($j=$i+1;$j<$k;$j++)
{
if($Vec_des[$i] > $Vec_des[$j])
{
$aux=$Vec_des[$i];
$Vec_des[$i]= $Vec_des[$j];
$Vec_des[$j]=$aux;
}
}
}
echo "<br> DATOS ORDENADOS <BR>";
for($i=0;$i<$k;$i++)
{
echo "<option>". $Vec_des[$i] . "</option>";
//echo $Vec_des[$i] . "<br>";
}
fclose($fp);
echo "</select>";
?>
<input type="hidden" name="op" id="op">
<br>
<p>
<input type="SUBMIT" value="GUARDAR" NAME="GUARDAR" onClick="f_guardar()">
<input type="SUBMIT" value="MOSTRAR" NAME="MOSTRAR" onClick="f_mostrar()">
<input type="SUBMIT" value="BUSCAR" NAME="BUSCAR" onClick="f_buscar()">
</form>
</BODY>
</HTML>
Código PHP:
<?php
echo "MANTENIMIENTO DE PRODUCTO<br>";
$op=$_POST["op"];
$vcodigo=$_POST["codigo"];
$vnom=$_POST["descripcion"];
$vprecio=$_POST["precio"];
$vmarca=$_POST["marca"];
$vcategoria=$_POST["categoria"];
if($op==1) // PROCESO GUARDAR
{
echo "codigo: " . $vcodigo. "<br>";
echo "nombre: " . $vnom. "<br>";
echo "precio: " . $vprecio. "<br>";
echo "marca: " . $vmarca. "<br>";
echo "categoria: " . $vcategoria. "<br>";
$file = "producto.dat";
$registro = $vcodigo . "/". $vnom . "/" . $vprecio . "/". $vmarca. "/" . $vcategoria . "\n";
$fp = fopen($file, "a"); // agregar // append
fwrite($fp, $registro);
fclose($fp);
echo "Registro guardado!!!";
}
if($op==2) // PROCESO MOSTRAR
{
$file = "producto.dat";
$fp = fopen($file, "r"); // read //leer
while(!feof($fp))
{
$texto= fgets($fp);
echo $texto . "<BR>";
}
fclose($fp);
}
if($op==3) // PROCESO buscar
{
$flip=0;
echo "codigo: " . $vcodigo. "<br>";
$file = "producto.dat";
$fp = fopen($file, "r");
while(!feof($fp))
{
$texto= fgets($fp);
// echo $texto . "<BR>";
$n=strlen($texto);
$sw=0;
$cod="";
$nom="";
$pre="";
$mar="";
$cat="";
for($i=0;$i<$n;$i++)
{
$c=substr($texto,$i,1);
if($c=="/")
{
$sw++;
}
if($sw==0)
{
$cod=$cod . $c;
}
if($sw==1)
{
$nom=$nom . $c;
}
if($sw==2)
{
$pre=$pre . $c;
}
if($sw==4)
{
$mar=$mar . $c;
}
if($sw==6)
{
$cat=$cat . $c;
}
}
if($cod == $vcodigo)
{
echo "Codigo: ". $cod . "<br>";
echo "Nombre: ". $nom . "<br>";
echo "Precio: ". $pre . "<br>";
echo "Marca: ". $mar . "<br>";
echo "Categoria: ". $cat . "<br>";
$flip=1;
}
}
if($flip==0)
{
echo "registro NO encontrado!!!! <br>";
}
fclose($fp);
}
?>