Skip to content

Ejemplo de historial con archivos en una base de datos

mayo 10, 2011

He escrito ya algunos artículos de como manejar archivos en php, pero no echo ninguno donde muestre un ejemplo práctico, así que en esta ocasión quiero enseñarte en este articulo  como guardar un fichero en una base de datos usando funciones propias de archivos en php, ¿te interesa?, entonces continua leyendo.

Recientemente estoy desarrollando SICET (Sistema Integral de Control de Escolar y Tutorías), para la escuela en la que laboró y me he topado con la necesidad de guardar archivos en una base de datos para dificultar su acceso y lectura ya que este archivo contendrá el historial de tutoría del alumno.  Así que tome la decisión de hacerlo y enseñarte como lo hice para que tu aprendas junto conmigo.


Como siempre primero te explico el contexto, la base de datos se llama sicet y la tabla alumnos_personales  contiene el campo tutorías de tipo longblob, este archivo será guardado como un documento txt.

En cuanto a la funcionalidad que quiero lograr es la siguiente: en una primera página se muestran dos textareas el primero muestra el contenido ya almacenado en la base de datos y sin permiso de modificación, el segundo es una área editable para ir generando su historial y estos dentro de un form que envía los datos por post. Te muestro la siguiente imagen y el código haber si me explico mejor:


if ($nombre == ‘tutoria’){

/* Funciones de archivo, después de consultar

el contenido del campo tutorías guardo el

contenido dentro del archivo txt */

$file = “docs/”.$campos[‘nocontrol_personales’].”.txt”;

$fp = fopen($file,”w+”);

fwrite($fp,$valor);

//aqui guardo el contenido en el archivo

fclose($fp);

$fp = fopen($file,”r”);

$archivo = fread($fp,filesize($file));

/*extraemos la informacion del archivo */

fclose($fp);

echo “<form name=’guarda’ method=’post’ action=’guarda_archivo.php’ >

<strong>Historial:<br />

<textarea cols=’80’ rows=’10’ disabled=’disabled’>$archivo</textarea><br />

Captura Nuevo:<br /><textarea cols=’80’ rows=’10’ name=’r2′></textarea>

<input type=’hidden’ name=’control’ value=’$campos[nocontrol_personales]’ /><br />

<input type=’submit’ name=’Enviar’ value=’Guardar’ /></form>”;

}

Este código esta en el archivo llamado “muestra_texarea.php”, entre las etiquetas form, que mandan el nuevo contenido del textarea editable mediante el método post y que es lo que se debe agregar al archivo y a su vez guardar en la base de datos, así lo que hago básicamente es abrir el archivo, agregarle al final la nueva información y luego lo guardo en la base de datos, con el siguiente código (este se encuentra dentro del archivo guarda_archivo.php):

extract($_POST);

$file = “docs/”.$control.”.txt”;

$fp = fopen($file,”r”);

/* abro para solo lectura

pero sin borrar contenido */

$archivo = fread($fp,filesize($file));

/* extraemos el contenido para guardar

en la base de datos */

fclose($fp);

$archivo.= “\n”;

/* Ahora lo guardamos en la base de datos */

$sql = “UPDATE alumnos_personales SET tutoria =’$archivo.$r2′ WHERE nocontrol_personales = ‘$control'”;

$result = mysql_query($sql);

if (!$result){

echo “Error al guardar el archivo en la base de datos”;

}else {

echo “Archivo Guardado Correctamente”;

unlink($file);/*eliminamos fisicamente

el archivo*/

echo “<script language=’javascript’>window.open(‘muestra_texarea.php’,’_self’,”);</script>”;

//regresamos a la pagina anterior

}

Y listo con ese logre el resultado de ir mostrando el historial en el textarea no editable y así a su vez  ir guardándolo en la base de datos. Para descargar este ejemplo dale click aquí.

Espero te sea de mucha utilidad este artículo, tanto tanto como a mí me sirven tus comentarios, así que no dudes en dejarme tu comentario ya que estos me ayudan a darle rumbo a mis artículos .

Atentamente

Tu amigo, Salvador López.

From → bases de datos, Tips

Dejar un comentario

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: