buenas a todos. ustedes vieron en algunas aplicaciones (bueno en todas), ejemplos o sistemas reales de mantenimiento de datos como alumnos, catalogo de productos y afines. cuando un administrador o encargado desea editar los datos de la persona incluyendo subir la foto de esa persona, se modifica correctamente los datos, pero por otras razones de nuevo desea modificar como el nombre o el apellido y le da clic en guardar, se modifica correctamente y cuando desea ver los datos de la persona, no se muestra la foto o la imagen.
a que se debe ese error ?.
les explicare mediante una aplicacion de
como editar datos con su respectiva imagen si que esta pierda su valor. en realidad esta aplicacion me enseñaron como hacerlo para uno de mis proyectos web y ahora les comparto a ustedes para que puedan implementarlo en sus respectivas aplicaciones.
lo primero que vamos a hacer es crear una base de datos. la base de datos la llamaremos
agenda. dentro de la base de datos crearemos una tabla llamada datos (como lo mencione antes).
dentro de la tabla agenda, los campos serian nombres, apellidos, direccion, edad, telefono, email, sexo y foto.
Código MySQL:
Ver original--
-- Base de datos: `agenda`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `datos`
--
una vez creada la base de datos y su tabla, procederemos a crear la conexion de la base de datos.
Conexion.class.php.
Código PHP:
Ver original<?php
/* Archivo : conexion.class.php (PHP 4.X)
* Version : 1.0 MySQL
* Ultima Modificacion : 18/03/06
*/
class Conexion{
var $host = DB_SERVER1;
var $port = DB_PORT1;
var $user = DB_USER1;
var $password = DB_PWD1;
var $db = DB_1;
var $idError = 0;
var $error = "";
var $link = NULL; // variable compartida para todas las instanicias de la clase
function Conexion($host = DB_SERVER1, $port = DB_PORT1, $user = DB_USER1, $password = DB_PWD1, $db = DB_1){
// parametros opcionales, tienen valores por defecto
$this->host = $host;
$this->port = $port;
$this->db = $db;
$this->user = $user;
$this->password = $password;
}
// solo se conecta si es que la variable $link no esta cargada
// o no esta activa la conexion
function conectarse(){
if(!$this->estaConectada()){// si la conexion NO esta activa
// la @ evita que se imprima el error
die( "<p class='error'>Problemas de conexion con la base de datos.</p>"); }
die( "<p class='error'>No puede utilizar la base de datos $this->db.</p>"); }
}
// cierra la conexion si es que esta conectada
function cerrar_conexion(){
if($this->estaConectada())
// se asegura que la conexion no se rompio bruscamente (fuera del close)
}
// ejecuta la query cargada en $sql
// en caso de error carga el codigo y mensaje de error en idError y error respectivamente.
function query($sql){
if(!$result){
//echo $sql;
}
return $result; // FALSE si la query falla
}
// retona la siguiente fila en un array asociativo
function fetch_array($result){
return $fila;
}
// retorna el numero de filas del result_set ($result)
function num_rows($result){
return $num_rows;
}
// retorna un booleano indicando si la conexion esta activa
function estaConectada(){
return true;
else
return false;
}
}
?>
despues crearemos el archivo config.inc.php.
este archivo que he creado colocando la funcion define nos servira para definir el nombre del servidor (en este caso es localhost), el puerto de la base de datos es opcional (por defecto es el 3306),el nombre del usuario, la contraseña y la base de datos.
si gustan pueden crear una carpeta llamada
includes para que guarden los archivos de la clase Conexion.class.php y el archivo config.inc.php.