Foros del Web » Programando para Internet » PHP »

muestra avatar, pero siempre el mismo

Estas en el tema de muestra avatar, pero siempre el mismo en el foro de PHP en Foros del Web. Hola amigos mi problema es el siguiente, he almacenado en la base de datos mysql usuarios que tienen un campo avatar (blob). bien cuando estoy ...
  #1 (permalink)  
Antiguo 09/08/2011, 03:17
 
Fecha de Ingreso: agosto-2011
Ubicación: Leganés
Mensajes: 14
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta muestra avatar, pero siempre el mismo

Hola amigos mi problema es el siguiente, he almacenado en la base de datos mysql usuarios que tienen un campo avatar (blob).

bien cuando estoy en la pagina principal de inicio, quiero que se muestres los comentarios de cada usuario junto a su avatar, para ello utilizo:

<img src='veravatar.php'width='100' height='100'>

donde veravatar.php es el archivo que me extrae la imagen de la base de datos

el problema es que, carga el primer usuario con su comentario y su avatar,
luego carga el segundo usuario y su avatar, y al primer comentario que era de otro usuario le pone tambien el avatar del segundo avatar, entonces cuando la pagina esta cargada completamente tengo todos los comentarios, pero todos con el mismo avatar(el del ultimo comentario). es como si se fuesen sobre escribiendo.

sinembargo tengo otra pagina que solo carga un avatar y me logeo con diferentes usuarios y funciona perfecto, solo sucede cuando en una misma pagina cargo dos avatares distintos.
  #2 (permalink)  
Antiguo 09/08/2011, 03:22
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: muestra avatar, pero siempre el mismo

Digo yo que tendrás alguna forma de saber de qué usuario tienes que cargar el avatar. Un id o algo por el estilo, de dónde sacas ese dato? Porque yo no veo ahí ninguna forma de pasárselo.

Un saludo.

PD: vamos, que pongas algo más de código, para poder ayudarte.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 09/08/2011 a las 03:22 Razón: Añadir PD
  #3 (permalink)  
Antiguo 09/08/2011, 06:20
 
Fecha de Ingreso: agosto-2011
Ubicación: Leganés
Mensajes: 14
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta Respuesta: muestra avatar, pero siempre el mismo

pagina de inicio.php

esta es la pagina donde saldran los comentarios de los usuarios junto a su avatar
solo e pegado el trozo de codigo del avatar.

Código:
<div id="cuerpo">
		  <div id="info">
                       <?if($conectar=@mysql_connect("xxxx","xxx","xxx")){
				if(mysql_select_db ('xxx', $conectar)){
					$querymostrar = "SELECT * FROM Tabla";
					$consulta = mysql_query($querymostrar, $conectar);
	
while($encontrados=mysql_fetch_row($consulta)){?>

<div style="background-color:red;">
	<table>
		<tr>
			<td style="color:black;">
                                                                 <?$_SESSION['nombre_para_avatar']=$encontrados[0];?>
<img src='verfoto.php'width='75' height='75'>
							
                         </td>
               </tr>                  
	</table>
</div>
                         <?
				}    (cierre del while)
			}            (cierre del if)
			?>				
</div>
este es el archivo php donde saco el avatar de la base de datos
le paso el valor del nick del usuario en la variable de sesion asi en cada
iteracion del while le paso un nombre que luego busco en la base de datos
(en la tabla de los usuarios que es donde busco, tengo tanto nick como avatar).

Código PHP:
<?
session_cache_limiter
('nocache,private');
session_name();
session_start();

$nombre=$_SESSION['nombre_para_avatar'];
$base="xxxx";
$tabla="tabla";
$conexion=mysql_connect("xxxxx","xxxxx","xxxxx");


mysql_select_db ($base$conexion);
    
$sacar "SELECT Avatar FROM ".$tabla." WHERE Nick='".$nombre."'"
    
$resultado mysql_query($sacar,$conexion);
         while (
$registro mysql_fetch_array($resultado)){            
                  
header("Content-type: image/jpg");             
                  echo 
$registro['Avatar'];
         }
mysql_close();
?>
  #4 (permalink)  
Antiguo 09/08/2011, 09:05
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: muestra avatar, pero siempre el mismo

No puedes utilizar la sesión para lo que estás haciendo, ya que estás machacando a cada paso del bucle el valor de la misma variable. Así nunca te va a funcionar, tienes que cambiar el planteamiento. Tienes dos opciones:

- Si con tu primera consulta que guardas en $encontrados ya tienes acceso al avatar, por qué no lo sacas directamente de ahí?
- La otra opción, si no lo tienes ahí, es que muevas el código de verfoto.php al otro fichero (o, si lo quieres tener ordeando, a una función), pero que puedas pasar el valor del nombre directamente sin tener que pasar por la session.

Creo que con eso te valdrá, si no me he explicado bien, me preguntas de vuelta.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 10/08/2011, 02:32
 
Fecha de Ingreso: agosto-2011
Ubicación: Leganés
Mensajes: 14
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: muestra avatar, pero siempre el mismo

Hola vgonga1986, estabas en lo cierto, iba por mal camino, he pasado el valor directamente sin variables de sesion y funciona, y ya se cual era el problema.

Código HTML:
Ver original
  1. <div id="cuerpo">
  2.           <div id="info">
  3.                        <?if($conectar=@mysql_connect("xxxx","xxx","xxx")){
  4.                 if(mysql_select_db ('xxx', $conectar)){
  5.                     $querymostrar = "SELECT * FROM Tabla";
  6.                     $consulta = mysql_query($querymostrar, $conectar);
  7.    
  8. while($encontrados=mysql_fetch_row($consulta)){?>
  9.  
  10. <div style="background-color:red;">
  11.     <table>
  12.         <tr>
  13.             <td style="color:black;">
  14.                                                                  <?$_SESSION['nombre_para_avatar']=$encontrados[0];?>
  15. <img src='verfoto.php'width='75' height='75'>

en la ultima linea se muestra la imagen que retorna verfoto.php, por ello en cada iteracion mostraba siempre la ultima y machacaba, pero sin embargo si pones esto otro

Código HTML:
Ver original
  1. <img src="verfoto.php[COLOR="Red"]?idfoto=[/COLOR]<?echo $encontrados[0];?>"/>

funciona porque en cada iteracion la imagen varia debido al parametro que pasamos por medio de GET, asi aunque en una pagina se llame a verfoto.php varias veces cada llamda es distinta debido al parametro, no como antes que siempre era la misma llamada, aunque la variable de sesion cambiara, muchas gracias a todos, y espero que sirva para otras personas

Etiquetas: avatar, blob, foto, img, mysql
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 19:42.