Foros del Web » Programando para Internet » PHP »

Poner avatares en mi web

Estas en el tema de Poner avatares en mi web en el foro de PHP en Foros del Web. Hola, ¿cómo estamos? Bueno, sé que algúnos estarán viendo esa madre del mundía, pero si hay alguien por acá, pido su ayuda. Aclaro que no ...
  #1 (permalink)  
Antiguo 13/06/2010, 22:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Poner avatares en mi web

Hola, ¿cómo estamos?

Bueno, sé que algúnos estarán viendo esa madre del mundía, pero si hay alguien por acá, pido su ayuda.
Aclaro que no quiero un sistema ya hecho, quiero el mio ;) ¿porqué?... por que es satisfacción propia (y suya, con su ayuda) de hacerlo yo.
Mi idea está en que cada que se incia sesión, hace una $_SESSION con el ID del usuario, después cuando ese usuario hace un mensaje, la base de datos recibe el ID de usuario que mandó el mensaje, y entonces cuando vulevo a hacer una consulta para pedir ese mensaje que lo imprima en pantalla, se supone que tiene que buscar con un: select avatar from usuarios where img_avatar='$ID'
En donde el $ID es el id que guardó del usuario que hizo el tema y despues imprime la imágen del avatar que tenga el usuario.
Mi problema es que no sé cómo hacer que seleccione primero el tema, y después sobre los resultados de la cosulta, haga otra cosnulta para buscar el campo de img_avatar de ese usuario, ¿me entienden? tengo la idea algo así...

Código PHP:
while($tem=mysql_fetch_array($temas))
 {
    
$avt_ID.=$tem['id_usuario'];
   
$avt=mysql_query("select img_avatar from usuarios where ID_usuario='$avt_ID'",$conectar)or die(mysql_error());
  
$result.=mysql_fetch_array($avt);        
  
$avt_tem=$result[0];
  
// Y acá ya imprimir el tama y el avatar del usuario autor del tema
 


Espero su ayuda, muchas gracias
  #2 (permalink)  
Antiguo 13/06/2010, 23:11
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Poner avatares en mi web

Osea a ver si entendi:
Quieres obtener primeramente los ID de los temas creados por un usuario y en base al ID de cada tema obtener un avatar?

Busca acerca de la operación INNER JOIN de SQL.

Suerte.
  #3 (permalink)  
Antiguo 13/06/2010, 23:12
 
Fecha de Ingreso: diciembre-2009
Mensajes: 19
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Poner avatares en mi web

Suena sencillo... pero siento que no te explicas bien...

¿Cuál tema?

Cita:
usuario que hizo el tema
Yo una vez hice algo asi, muy muy sencillo, claro...

Pero me limite a guardar el nombre de la imagen (renombrada antes de, claro está) en la tabla del usuario. Así cuando iniciara, mandaba llamar el nombre de la imagen y la metia en una etiqueta "<img..."

Pero probablemente eso del "Tema", lo cambia todo. ¿Podrias explicarte?
  #4 (permalink)  
Antiguo 13/06/2010, 23:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Claro, intentaré explicarme mejor...
Un usuario tiene una cuenta en mi página(usuario Juanito), entonces cuando iciia sesión, obtiene las SESSIONES de usuario y una SESSION que lleva el ID que tiene, esta id, es único e irrepetible entre usuarios, entonces digamos que actualiza su perfíl y sube un avatar, este avatar que sube, se guarda en una carpeta y sólo el nombre del avatar se actualiza en la base de datos, después el usuario crea un nuevo tema y cuando se suben los datos del tema, se obtiene la SESSION de su ID y la sube a la base de datos (el ID es un valor numérico, no es texto)
TODO LO ENTERIOR YA LO TENGO LISTO, PERO LO SIGUIENTE NO...
Después, en otra página, a traves de una consulta obtengo el tema que creo ese usuario (el usuario Juanito, por decir) y obtengo también el ID que se había guardado cuando creó Juanito el tema, lo que yo quiero hacer, es que mediante otra consulta, busque en la base de datos su avatar(el avatar de juanito), lo busca mediante el ID que se guardo en la base de datos cuando hizo el tema...imprima en pantalla el nombre del avatar.

Espero haya quedado un poco más claro...
  #5 (permalink)  
Antiguo 14/06/2010, 04:15
 
Fecha de Ingreso: abril-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Poner avatares en mi web

y porque no usas la misma consulta que estes usando en la actualidad? añadiendo en la consulta por ejemplo "avatar" y listo y a la hora de sacar el resultado lo imprimes al igual que estes haciendo con los otros datos: $ejemplo["avatar"]........ :D no se...
  #6 (permalink)  
Antiguo 14/06/2010, 14:35
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Poner avatares en mi web

Haber al crear un tema guardas el ID del usuario que creo el tema en un campo: id_usuario (supongamos)
Después el problema es obtener la información del avatar del usuario que creo el tema que esta en la tabla usuarios no?.

Si es así, puedes hacerlo con INNER JOIN como ya te había comentado:
Código:
SELECT temas.*, usuarios.img_avatar FROM temas INNER JOIN usuarios ON temas.id_usuario = usuarios.id WHERE temas.id = 'blahblah'
Obviamente es un ejemplo ya que solo tu conoces la estructura de tu base de datos y por lo tanto habría variaciones en los nombres de campos y tablas por ejemplo.

Por otra parte si el ID del usuario cambia constantemente por ejemplo en cada inicio de sesión, esto no funcionará por lo tanto tendrías que buscar una relación entre los datos que guardes en tu tabla temas, con los datos de tu tabla usuarios para poder hacer la consulta.

Saludos
__________________
Ideorama. Su presencia en Internet
  #7 (permalink)  
Antiguo 14/06/2010, 19:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

A ver si me enteienden con lo que to tengo pensado...
Este código no funciona, no regresa el nombre de la imagen que tiene como avatar.

Cita:
<?php
//Pido todos los datos de la tabla de los TEMAS
$temas=mysql_query("select * from temas_foro where ID_tema='$ID'",$conectar)or die(mysql_error());
while($tema=mysql_fetch_array($temas))
{
//AVATAR_ID es el ID que se guardó del usuario al hacer el tema.(ejemplo: 25)
$avatar_ID.=$tema['id_usuario'];
//Selecciona el nombre de la imagen que tiene como avatar el usuario
$avatar=mysql_query("select avatar from tabla_usuarios where ID_usuario='$avatar_ID'",$conectar)or die(mysql_error());
//Pone en un array el nombre del avatar que devolvió
$resultado.=mysql_fetch_array($avatar);
//Accedo al nombre mediante el valor 0, porque se supone sólo devuelve un objeto el fetch_array
$avatar_usuario=$resultado[0];
//Imprimo el nombre d esu avatar en la etiqueta html
?>

<img src='./avatares/<?php echo $avatar_usuario; ?>' >

<?php } ?>
  #8 (permalink)  
Antiguo 15/06/2010, 13:33
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Poner avatares en mi web

Bueno, el código que pones es prácticamente lo que te estoy desde un principio solo que para evitar hacer dos consultas (que en realidad seria una consulta para obtener el avatar por cada tema) utilizo INNER JOIN. Como ya también te dije anteriormente eso no va a funcionar si el id_usuario cambia constantemente porque entonces no habría una relación entre las tablas.

Supongamos que cada vez que un usuario inicia sesión creas una SESSION['id_usuario'] aleatoria, seria prácticamente imposible saber que usuario creo un tema. Si por el contrario el id que guardas en SESSION es por ejemplo el identificador único del usuario en la tabla usuarios no tendrías porque tener problema al hacerlo como lo estas haciendo.

Suerte
__________________
Ideorama. Su presencia en Internet
  #9 (permalink)  
Antiguo 15/06/2010, 22:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Cita:
Iniciado por dots3r Ver Mensaje
Bueno, el código que pones es prácticamente lo que te estoy desde un principio solo que para evitar hacer dos consultas (que en realidad seria una consulta para obtener el avatar por cada tema) utilizo INNER JOIN. Como ya también te dije anteriormente eso no va a funcionar si el id_usuario cambia constantemente porque entonces no habría una relación entre las tablas.

Supongamos que cada vez que un usuario inicia sesión creas una SESSION['id_usuario'] aleatoria, seria prácticamente imposible saber que usuario creo un tema. Si por el contrario el id que guardas en SESSION es por ejemplo el identificador único del usuario en la tabla usuarios no tendrías porque tener problema al hacerlo como lo estas haciendo.

Suerte
Gracias por contestar.
El ID es único,no es aleatorio, nunca cambia el ID de usuario.
Pues así lo estoy implementando y no funciona, no marca error, sólo no devuelve el nombre de la imagen de avatar.
Checaré con INNER JOIN, pero si tiene alguna otra alternativa se agradece muchísimo.
  #10 (permalink)  
Antiguo 17/06/2010, 18:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Ok, no he entendido muy bien tu cosnulta en español jeje :p
Soy algo nuevo en PHP, tampoco tengo mucho en este mundillo.
Apartir del FROM me pierdo un poco.

Lo interpreté hasta aquí...

SELECCIONA todos los campos de la tabla tema y el campo img_avatar de tabla usuario

Gracias por la ayuda.
  #11 (permalink)  
Antiguo 17/06/2010, 19:02
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Poner avatares en mi web

cuando crees un mensaje, en la tabla de mensajes tiene que aver un campo que se llame remitente, entonces ahi guarda el nombre o la id del remitente y cuando vallas a mostrar el mensaje hace inner join para el avatar

Código PHP:
$sql mysql_query("SELECT * FROM tabla_usuario WHERE id='$remitente'");
$datos mysql_fetch_array($sql);

echo 
$datos['img_avatar']; y te muestra el avatar 
  #12 (permalink)  
Antiguo 17/06/2010, 20:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Ok, pero si hago má so menos lo que dices,entonces provoca un error de Blucle infinito, al que sólo imprime el tema...mira, lo estoy haciendo así.

//obtiene el ID del tema que va a mostrar.
$ID=$_GET['ID'];
//Selecciona solo un tema
$temas=mysql_query("select * from tabla_tema where ID-tema='$ID'",$conectar);
//Los pone en un array
$tem=mysql_fetch_array($temas);
//Saca el id del usuario que guardó cuando creó el tema (o remitente, pues...)
$ID_avt.=$tem['id_usuario'];
//Hace una consulta para selccionar el nombre del imagen que tiene por avatar el suuario autor del tema.
$avatar_tem=mysql_query("select img_avatar from tabla_usuario where ID-usuario='$IDavt'",$conectar);

//Se visualiza el tema con un bucle
while($tem)
{
//Imprimo el tema así
echo $tem['tema'];
//...Y el avatar...
echo "<img src='./avatares/".$avatar_tem."'>'";
}

Lo que provoca esto es que el tema se repita infinitas vece, además de que no imprima el avatar.
Espero su ayuda pronto, gracias.
  #13 (permalink)  
Antiguo 17/06/2010, 20:42
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Poner avatares en mi web

y por que haces un while XD es muy inutil ese while directamente haces
echo $tem['tema'];
//...Y el avatar...
echo "<img src='./avatares/".$avatar_tem."'>'";

y nada mas sin while
  #14 (permalink)  
Antiguo 17/06/2010, 20:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Ok, quitar el While lo intentaré con el tema, pero,¿qué pasa cuando es un whilepara las respuestas?
En ese caso sí necesito un while, para imprimir todas las respuestas.
Para las respuestas sigo más o menos le mismo método, selelciono los temas que tengan un identidficador con el ID que se utiliza para mostrar ese único tema.
  #15 (permalink)  
Antiguo 17/06/2010, 21:04
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Poner avatares en mi web

while($tem=mysql_fetch_array($temas))
  #16 (permalink)  
Antiguo 17/06/2010, 21:08
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

[Apuu]
No, No, no, eso es lo que hago, pero no funciona así, porque también hay que poner avatar de los que usuarios que hicieron su respuesta, y si los pongo en While regreso al mismo error que te mencioné, que hace bucle infinito.
amm... creo que... no me han etendido bien qué es lo que sucede... :(
Bueno, bueno, seguiré por acá por cualquiero cosa, espero su ayuda, Adiós.
  #17 (permalink)  
Antiguo 17/06/2010, 21:11
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Poner avatares en mi web

claro pero no te funciona por que vos tenes un solo mensaje no 2 o mas haci que no te va a andar per os i lo ahces de otra manera al query funciona
mira un ejemplo
http://cordoba-inmuebles.webege.com/propiedades.php
  #18 (permalink)  
Antiguo 17/06/2010, 21:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Poner avatares en mi web

Bien, el tema de foro si es uno sólo, como el que yo mismo puse aquí, pero NO funciona aunque lo saque dle WHILE..., es el mismo código que tengo arriva, solo quitandole el WILE() {}

En cuanto a las respuestas, son varias, no sé 5,23, etcétera, las que dejen los usuarios, pero la única forma que repita y repita todas las respuestas que hay para ese tema e sa través de un BUCLE, sea FOR o WHILE.
Si utilizo un WHILE sólo para las respuestas (no para los temas) sale lo mismo, no imprime imagen ya demás hace bucle infinito...

Lo que necesito es hacer un WHILE que muestra el avatar y yab sea tema o respuesta UNA sóla vez...¿alguna idea?
Ya estoy algo decesperado, :S ayuda, por favor o... ¿algún experimentado en PHP que me pueda brindar ayuda por correo?
Gracias

Etiquetas: poner
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.