Regresar a la página ComoCrearTuWeb.com
Resultados 1 al 9 de 9

Tema: como relacionar el usuario loqueado con la imagen que a subido

  1. #1
    Recien Llegado! Habitual
    Fecha de Ingreso
    17 may, 13
    Mensajes
    11
    Poder de Reputación
    13

    como relacionar el usuario loqueado con la imagen que a subido

    hola a todos alguien puede ayudarme en como relacionar el usuario loqueado con la imagen que a subido
    tengo una tabla de usuarios y otra de imagenes que fuccionan bien esta en tipo innodb
    el formulario de subida de imagenes lo tengo en perfil.php(pagina privada de usuarios), si suban las imagens bien
    y el usuario tene que ser loqueado para entrar a su perfil y subir imagens ,
    me pregunta como relaciono las imagenes subidas con el usuario que la subido.
    estas son mis tablas


    CREATE TABLE IF NOT EXISTS `usuarios` (
    `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
    `usuario_nombre` varchar(15) NOT NULL DEFAULT '',
    `usuario_clave` varchar(32) NOT NULL DEFAULT '',
    `usuario_email` varchar(50) NOT NULL DEFAULT '',
    `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `tipo` enum('2','1') NOT NULL DEFAULT '2',
    `facebook` varchar(250) NOT NULL,
    `twitter` varchar(250) NOT NULL,
    `avatar` varchar(500) NOT NULL,
    PRIMARY KEY (`usuario_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


    CREATE TABLE IF NOT EXISTS `datos` (
    `usuario_id` int(11) NOT NULL AUTO_INCREMENT,
    `ruta` varchar(100) NOT NULL,
    `descripcion` text,
    PRIMARY KEY (`usuario_id`)
    )ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    Hola!

    Primero que nada, la tabla datos, si bien funciona, no está bien hecha. La forma correcta debería ser esta:

    Código:
    CREATE TABLE IF NOT EXISTS `datos` (
    `dato_id` int(11) NOT NULL AUTO_INCREMENT,
    `ruta` varchar(100) NOT NULL,
    `descripcion` text,
      usuario_id INT(11) NOT NULL,
      PRIMARY KEY (`dato_id`),
      INDEX usuario_index (usuario_id),
      FOREIGN KEY (usuario_id) REFERENCES usuarios (usuario_id)
        ON UPDATE CASCADE
        ON DELETE CASCADE
    )ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
    Esto impide que hayan valores nulos en la tabla datos y mejora el rendimiento (algo que casi no se nota).

    me pregunto como relaciono las imágenes subidas con el usuario que la subido.
    Con una consulta SQL usando JOIN:

    Código:
    SELECT * FROM usuarios INNER JOIN datos ON usuarios.usuario_id = datos.usuario_id WHERE usuarios.usuario_id = N
    Donde N es el id del usuario que quieres relacionar. Puedes cambiarlo por WHERE usuarios.usuario_nombre = $nombre_usuario o cualquier otra forma de identificarlo.

    Saludos!

    PD: ¿por qué la tabla datos no se llama imagenes_usuario, que es más lógico? Siempre deberías llamar las tablas de manera lógica, puesto que así todos podrán entender lo que significan :).

  3. #3
    Recien Llegado! Habitual
    Fecha de Ingreso
    17 may, 13
    Mensajes
    11
    Poder de Reputación
    13
    hola me sale un error , que no se puede subir imagenes y puesto esta tabla

    CREATE TABLE IF NOT EXISTS `datos` (
    `dato_id` int(11) NOT NULL AUTO_INCREMENT,
    `ruta` varchar(100) NOT NULL,
    `descripcion` text,
    usuario_id INT(11) NOT NULL,
    PRIMARY KEY (`dato_id`),
    INDEX usuario_index (usuario_id),
    FOREIGN KEY (usuario_id) REFERENCES usuarios (usuario_id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    )ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;



    el formulario es este


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento sin título</title>
    </head>
    <body>
    <form id="form1" name="form1" method="post" action="recibir.php" enctype="multipart/form-data">
    <p>Seleccione la Imagen:
    <input type="file" name="imagen"/>
    </p>
    <p>Descripción:
    <input type="text" name="descripcion" id="descripcion" />
    <input type="submit" name="Aceptar" id="Aceptar" value="Aceptar" />
    </p>
    <p>&nbsp;</p>
    </form>
    </body>
    </html>


    el codigo que sube las imagenes es este


    <?php
    /* print_r($_FILES);
    echo'<br>';
    echo 'nombre de la imagen: ';
    print_r($_FILES['imagen']['name']);

    echo'<br>';
    echo 'tipo de la imagen: ';
    print_r($_FILES['imagen']['type']);

    echo'<br>';
    echo 'ruta temporal de la imagen: ';
    print_r($_FILES['imagen']['tmp_name']);
    */
    $conexion=mysql_connect('localhost','root','777777 7') or die('No hay conexión a la base de datos');
    $db=mysql_select_db('mourad',$conexion)or die('no existe la base de datos.');

    $rutaEnServidor='imagenes';
    $rutaTemporal=$_FILES['imagen']['tmp_name'];
    $nombreImagen=$_FILES['imagen']['name'];
    $rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
    move_uploaded_file($rutaTemporal,$rutaDestino);

    $desc=$_POST['descripcion'];

    $sql="INSERT INTO datos (ruta,descripcion) values('".$rutaDestino."','".$desc."')";
    $res=mysql_query($sql,$conexion);

    if ($res){
    echo 'inserción con exito';
    }else{
    echo 'no se puedo insertar';
    }

    ?>



    subo las imagenes a una carpeta llamada imagenes y la guardo el la tabla datos,porque no puedo subirlas ahora
    gracias por la ayuda

  4. #4
    Recien Llegado! Habitual
    Fecha de Ingreso
    17 may, 13
    Mensajes
    11
    Poder de Reputación
    13
    hola me sale un error , que no se puede subir imagenes y puesto esta tabla

    CREATE TABLE IF NOT EXISTS `datos` (
    `dato_id` int(11) NOT NULL AUTO_INCREMENT,
    `ruta` varchar(100) NOT NULL,
    `descripcion` text,
    usuario_id INT(11) NOT NULL,
    PRIMARY KEY (`dato_id`),
    INDEX usuario_index (usuario_id),
    FOREIGN KEY (usuario_id) REFERENCES usuarios (usuario_id)
    ON UPDATE CASCADE
    ON DELETE CASCADE
    )ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;



    el formulario es este


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento sin título</title>
    </head>
    <body>
    <form id="form1" name="form1" method="post" action="recibir.php" enctype="multipart/form-data">
    <p>Seleccione la Imagen:
    <input type="file" name="imagen"/>
    </p>
    <p>Descripción:
    <input type="text" name="descripcion" id="descripcion" />
    <input type="submit" name="Aceptar" id="Aceptar" value="Aceptar" />
    </p>
    <p>&nbsp;</p>
    </form>
    </body>
    </html>


    el codigo que sube las imagenes es este


    <?php
    /* print_r($_FILES);
    echo'<br>';
    echo 'nombre de la imagen: ';
    print_r($_FILES['imagen']['name']);

    echo'<br>';
    echo 'tipo de la imagen: ';
    print_r($_FILES['imagen']['type']);

    echo'<br>';
    echo 'ruta temporal de la imagen: ';
    print_r($_FILES['imagen']['tmp_name']);
    */
    $conexion=mysql_connect('localhost','root','777777 7') or die('No hay conexión a la base de datos');
    $db=mysql_select_db('mourad',$conexion)or die('no existe la base de datos.');

    $rutaEnServidor='imagenes';
    $rutaTemporal=$_FILES['imagen']['tmp_name'];
    $nombreImagen=$_FILES['imagen']['name'];
    $rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
    move_uploaded_file($rutaTemporal,$rutaDestino);

    $desc=$_POST['descripcion'];

    $sql="INSERT INTO datos (ruta,descripcion) values('".$rutaDestino."','".$desc."')";
    $res=mysql_query($sql,$conexion);

    if ($res){
    echo 'inserción con exito';
    }else{
    echo 'no se puedo insertar';
    }

    ?>



    subo las imagenes a una carpeta llamada imagenes y la guardo el la tabla datos,porque no puedo subirlas ahora
    gracias por la ayuda

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    ¿Podrías mostrarnos el error? Revisa el registro de errores de PHP también.

  6. #6
    Recien Llegado! Habitual
    Fecha de Ingreso
    17 may, 13
    Mensajes
    11
    Poder de Reputación
    13
    hola y gracias
    me sale esta frase
    no se puede subir la imagen

  7. #7
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    Hmm, pero en que parte del código aparece esa frase, porque en el código que muestras no aparece. ¿Hay más código involucrado? Necesitas mostrar todo el código que utilizas.

  8. #8
    Recien Llegado! Habitual
    Fecha de Ingreso
    17 may, 13
    Mensajes
    11
    Poder de Reputación
    13
    perdona por las molestias y gracias la frase es esta

    <?php
    /* print_r($_FILES);
    echo'<br>';
    echo 'nombre de la imagen: ';
    print_r($_FILES['imagen']['name']);

    echo'<br>';
    echo 'tipo de la imagen: ';
    print_r($_FILES['imagen']['type']);

    echo'<br>';
    echo 'ruta temporal de la imagen: ';
    print_r($_FILES['imagen']['tmp_name']);
    */
    $conexion=mysql_connect('localhost','root','777777 7') or die('No hay conexión a la base de datos');
    $db=mysql_select_db('mourad',$conexion)or die('no existe la base de datos.');

    $rutaEnServidor='imagenes';
    $rutaTemporal=$_FILES['imagen']['tmp_name'];
    $nombreImagen=$_FILES['imagen']['name'];
    $rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
    move_uploaded_file($rutaTemporal,$rutaDestino);

    $desc=$_POST['descripcion'];

    $sql="INSERT INTO datos (ruta,descripcion) values('".$rutaDestino."','".$desc."')";
    $res=mysql_query($sql,$conexion);

    if ($res){
    echo 'inserción con exito';
    }else{
    echo 'no se puedo insertar';
    }

    ?>

  9. #9
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,046
    Poder de Reputación
    27
    Aaah! Ahora todo tiene sentido! Jejeje. No me di cuenta antes, pero el problema es que con mi solución debes insertar el id del usuario al ingresar una nueva imagen, por lo que lo correcto debería ser:

    Código:
    <?php 
    /* print_r($_FILES);
    echo'<br>';
    echo 'nombre de la imagen: ';
    print_r($_FILES['imagen']['name']);
    
    echo'<br>';
    echo 'tipo de la imagen: ';
    print_r($_FILES['imagen']['type']);
    
    echo'<br>';
    echo 'ruta temporal de la imagen: ';
    print_r($_FILES['imagen']['tmp_name']);
    */
    $conexion=mysql_connect('localhost','root','777777 7') or die('No hay conexión a la base de datos');
    $db=mysql_select_db('mourad',$conexion)or die('no existe la base de datos.');
    
    $rutaEnServidor='imagenes';
    $rutaTemporal=$_FILES['imagen']['tmp_name'];
    $nombreImagen=$_FILES['imagen']['name'];
    $rutaDestino=$rutaEnServidor.'/'.$nombreImagen;
    move_uploaded_file($rutaTemporal,$rutaDestino);
    
    $desc=$_POST['descripcion'];
    
    $sql = "SELECT usuario_id FROM usuarios WHERE usuario_nombre = 'INSERTAR NOMBRE USUARIO'";
    $res = mysql_query( $sql, $conexion );
    
    if( $res ) {
      // Deberías validar que sólo se haya extraído una fila
      $id = mysql_fetch_assoc( $res )['usuario_id'];
      mysql_free_result( $res );
      // Esto es lo correcto:
      $sql="INSERT INTO datos (ruta, descripcion, usuario_id) VALUES ('$rutaDestino','$desc', $id)"; 
      $res=mysql_query($sql,$conexion);
    
      if ($res){
        echo 'inserción con exito';
      } else {
        echo 'no se puedo insertar';
      }
    } else {
      echo "<p>El usuario no existe</p>";
    }
    
    mysql_close( $conexion );
    ?>
    De alguna manera debes extraer el id del usuario para insertarlo en el nuevo registro. En el código anterior deberías modificar donde dice INSERTAR NOMBRE USUARIO por algo como $_SESSION['nombre_usuario'] u otra forma (como sea que funciona tu sistema de sesiones).

    Espero que te sirva, saludos!

Temas Similares

  1. relacionar las imagenes con el usuario que la subido
    Por all7 en el foro Sistema de Registro de Usuarios
    Respuestas: 0
    Último Mensaje: 09/09/2014, 16:03
  2. Ayuda para imagen según usuario
    Por Alala en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 0
    Último Mensaje: 24/12/2012, 02:35
  3. Relacionar tabla usuarios e imagen
    Por GJeria en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 12
    Último Mensaje: 17/09/2012, 21:16
  4. Cómo situar el icono subido a favicón
    Por antonymanz en el foro Todo sobre Estilos CSS
    Respuestas: 1
    Último Mensaje: 29/11/2010, 16:07

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •