Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2010, 09:19
esaenz22
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
[APORTE] mantenimiento de imagenes en php y mysql

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
  1. --
  2. -- Base de datos: `agenda`
  3. --
  4.  
  5. -- --------------------------------------------------------
  6.  
  7. --
  8. -- Estructura de tabla para la tabla `datos`
  9. --
  10.  
  11. CREATE TABLE `datos` (
  12.   `idagenda` int(10) unsigned NOT NULL auto_increment,
  13.   `nombres` varchar(100) default NULL,
  14.   `apellidos` varchar(100) default NULL,
  15.   `direccion` varchar(100) default NULL,
  16.   `edad` varchar(100) default NULL,
  17.   `telefono` varchar(100) default NULL,
  18.   `email` varchar(100) default NULL,
  19.   `sexo` char(2) default NULL,
  20.   `foto` varchar(255) default NULL,
  21.   PRIMARY KEY  (`idagenda`)

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
  1. <?php
  2.  /* Archivo             : conexion.class.php (PHP 4.X)
  3.  *  Version             : 1.0 MySQL
  4.  *  Ultima Modificacion : 18/03/06
  5.  */
  6.  
  7. class Conexion{
  8.    var $host = DB_SERVER1;
  9.    var $port = DB_PORT1;
  10.    var $user = DB_USER1;
  11.    var $password = DB_PWD1;
  12.    var $db  = DB_1;
  13.    var $idError = 0;
  14.    var $error = "";
  15.    var $link = NULL; // variable compartida para todas las instanicias de la clase
  16.    function Conexion($host = DB_SERVER1, $port = DB_PORT1, $user = DB_USER1, $password = DB_PWD1, $db = DB_1){
  17.     // parametros opcionales, tienen valores por defecto
  18.        $this->host = $host;
  19.        $this->port = $port;
  20.        $this->db    = $db;
  21.        $this->user = $user;
  22.        $this->password = $password;
  23.    }
  24.    // solo se conecta si es que la variable $link no esta cargada
  25.    // o no esta activa la conexion
  26.    function conectarse(){
  27.         if(!$this->estaConectada()){// si la conexion NO esta activa
  28.             $this->link = @mysql_connect($this->host,$this->user,$this->password);
  29.             // la @ evita que se imprima el error
  30.             if (!$this->link) {
  31.                 die( "<p class='error'>Problemas de conexion con la base de datos.</p>");
  32.             }
  33.             if(!(mysql_select_db($this->db,$this->link)))
  34.                 die( "<p class='error'>No puede utilizar la base de datos $this->db.</p>");
  35.         }
  36.    }
  37.    // cierra la conexion si es que esta conectada
  38.    function cerrar_conexion(){
  39.         if($this->estaConectada())
  40.         // se asegura que la conexion no se rompio bruscamente (fuera del close)
  41.             mysql_close($this->link);
  42.         $this->link = NULL;
  43.    }
  44.    // ejecuta la query cargada en $sql
  45.    // en caso de error carga el codigo y mensaje de error en idError y error respectivamente.
  46.    function query($sql){
  47.         $result = mysql_query($sql,$this->link);
  48.         if(!$result){
  49.             //echo $sql;       
  50.             $this->idError = mysql_errno($this->link);
  51.             $this->error = mysql_error($this->link);
  52.         }
  53.         return $result; // FALSE si la query falla
  54.    }
  55.    // retona la siguiente fila en un array asociativo
  56.    function fetch_array($result){
  57.         $fila = mysql_fetch_array($result);
  58.         return $fila;
  59.    }
  60.    // retorna el numero de filas del result_set ($result)
  61.    function num_rows($result){
  62.         $num_rows = mysql_num_rows($result);
  63.         return $num_rows;
  64.    }
  65.    // retorna un booleano indicando si la conexion esta activa
  66.    function estaConectada(){
  67.         if( $this->link != NULL && mysql_ping($this->link) )
  68.             return true;
  69.         else
  70.             return false;
  71.    }
  72. }
  73. ?>

despues crearemos el archivo config.inc.php.

Código PHP:
Ver original
  1. //mysql
  2. define("DB_SERVER1","localhost");
  3. define("DB_PORT1","3306"); //opcional
  4. define("DB_USER1","root");
  5. define("DB_PWD1","tu-clave");
  6. define("DB_1","agenda");

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.

Última edición por esaenz22; 16/02/2010 a las 10:45 Razón: correccion.