UNIDAD 6: LINUX PHP REGISTROS Y ARCHIVOS DIRECTOS

TEMA 5: FILTROS CONDICIONES ARCHIVOS LINUX PHP

Otro problema similar al anterior es el de filtros o condiciones, es decir en muchas ocasiones es necesario obtener informacion acerca de un subconjunto de renglones de el archivo.

Por ejemplo todos los estudiantes que sean mayores de 17 anos, o todos los clientes que sean de Tijuana, etc. a esto le llamamos filtros o condiciones.

Tambien se resuelve de manera similar a los de archivos secuenciales es decir usando un ciclo de lectura de todo el archivo e ir desplegando todos los registros que cumplan la condicion.

Prog30.php

<HTML>
<FORM ACTION=prog30.php METHOD=post>
EDAD >=<INPUT TYPE=text NAME=EDAD><BR>
<INPUT TYPE=submit NAME=OK VALUE="FILTRAR"><BR>
</FORM></HTML>
<?php
if ($OK == "FILTRAR") {
// tamano registro y cantidad de registros
$TR=47;$CR=filesize('datos.dat') / $TR;
// creando y abriendo archivo
$archivo=fopen('datos.dat','a+') or die("no puedo abrir archivo");
//empezando una tabla html
echo "<HTML><TABLE Border=10 CellPadding=5><TR>";
echo"<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th><th bgcolor=YellowRed>ESTATURA</th></TR>";
// abriendo en lectura el registro
for($x=1; $x<=(int)$CR; $x=$x+1)
{
// leyendo y desempacando el registro
$reg=fread($archivo,$TR);
$reg= unpack("iclave/A30nombre/iedad/destatura/A1bandera", $reg);
// desplegando
if ($reg[bandera] == "A" and $reg[edad]>=$EDAD ){
echo"<tr>";
echo "<td>".$reg[clave]."</td>";
echo "<td>".$reg[nombre]."</td>";
echo "<td>".$reg[edad]."</td>";
echo "<td>".$reg[estatura]."</td>";
echo"</tr>"; };
};
//cerrando archivo y tabla
echo "</table>";
fclose($archivo);
};
?>

corrida:

image118.jpg

Como se observa es un problema y una solucion similar al tema anterior de busquedas.

PROGRAMACION ARCHIVOS LINUX PHP

HACERLES PROGRAMAS DE FILTRADO A LOS ARCHIVOS ANTERIORES, PERO LA CONDICION DE BUSQUEDA FORMARLA CON COMPONENTES HTML DE SELECCION(UNO PARA LA VARIABLE Y OTRO PARA EL OPERADOR RELACIONAL) Y UN COMPONENTE TEXT( PARA EL DATO), ESTO PERMITIRIA QUE SE PUDIERA FILTRAR EL ARCHIVO POR CUALQUIER CAMPO y cualquier operador.

Politica de Privacidad