UNIDAD 6: PHP REGISTROS Y ARCHIVOS DIRECTOS

TEMA 8: PHP EDICION MODIFICACION DE REGISTROS SQL UPDATE

Modificar o editar un registro es uno de los procesos mas comunes con archivos en disco, generalmente despues de un fuerte proceso de captura de registros, una revision o consulta general muestra muchos de ellos con errores de captura.

El modelo de programacion cliente-servidor que se esta estudiando, facilita mucho este proceso de edicion.

Para este proceso se ocupara una forma html y se ocuparan dos eventos, el procedimiento a seguir es:

1.- la forma html pide la clave del registro a editar.

2.- el primer evento es el programa normal de busqueda que ya se construyo en temas anteriores, pero al desplegar el registro se debera construir una forma html completa(llamada forma o pagina dinamica) que incluya los textboxs cargados con los datos del registro e incluyendo un segundo button=editar o evento2, observar que en general este evento lo que hace es construir una segunda forma html con los datos cargados del registro.

3.- el segundo evento es activado y toma los datos de la forma dinamica, los almacena en el registro en memoria luego se posiciona en el registro en disco a modificar con seek() y se regraba.

Prog33.php

<HTML>
<FORM ACTION=prog33.php METHOD=post>
DAME CLAVE A BUSCAR:<INPUT TYPE=text NAME=CLAVE><BR>
<INPUT TYPE=submit NAME=OK VALUE="BUSCAR"><BR>
</FORM></HTML>
<?php
if ($OK == "BUSCAR") {
// 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");
// colocandonos en byte de registro a leer
if ( $CLAVE * $TR < filesize('datos.dat') )
{
fseek($archivo, $CLAVE * $TR);
// leyendo y desempacando el registro
$reg=fread($archivo,$TR);
$reg= unpack("iclave/A30nombre/iedad/destatura/A1bandera", $reg);
// construyendo forma dinamica
echo "<FORM ACTION=prog33.php METHOD=post>";
echo "CLAVE:<INPUT TYPE=text NAME=CLAVE value=$reg[clave]><BR>";
// recordar que strings se encadenan con .
echo "NOMBRE:<INPUT TYPE=text NAME=NOMBRE value= \"".$reg[nombre]."\"><BR>";
echo "EDAD:<INPUT TYPE=text NAME=EDAD value=$reg[edad]><BR>";
echo "ESTATURA:<INPUT TYPE=text NAME=ESTATURA value=$reg[estatura]><BR>";
echo "<input type=hidden name=bandera value=$reg[bandera]>";
echo "<INPUT TYPE=submit NAME=OK VALUE=editar><BR>";
echo "</FORM>";
};
//cerrando archivo
fclose($archivo);
};
if ($OK == "editar") {
// creando y abriendo archivo
$archivo=fopen('datos.dat','r+') or die("no puedo abrir archivo");
// empacando los campos del registro
$registro =pack("IA30idA1",$CLAVE,$NOMBRE,$EDAD,$ESTATURA,$bandera);
// colocandonos en posicion
// tamano registro y cantidad de registros
$TR=47; $CR=filesize('datos.dat') / $TR;
// colocandonos en byte de registro a grabar
if ( $CLAVE * $TR < filesize('datos.dat') )
{
fseek($archivo, $CLAVE * $TR);
// grabando
fwrite($archivo,$registro,strlen($registro));
};
//cerrando archivo
fclose($archivo);
//avisando
echo "registro editado<br>";
};
?>

Corrida:

image122.jpg

Observar que es el programa normal de busqueda pero el despliegue se realiza construyendo una pagina o forma dinamica que se llama a si misma (action=prog33.php) como se observa en la corrida:

Este es el programa que activa la forma dinamica y que actualiza el registro editado en el archivo en disco, la logica de este programa ya se explico en el tercer parrafo de este tema.

Corrida prog28.php

image123.jpg

TAREAS PHP MYSQL SUGERIDOS

CONSTRUIRLES PROGRAMAS DE EDICION O MODIFICACION A LOS ARCHIVOS YA CONSTRUIDOS.

Politica de Privacidad