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:
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.