Foros del Web » Programando para Internet » PHP »

Problema con bucles

Estas en el tema de Problema con bucles en el foro de PHP en Foros del Web. Hola, sigo teniendo problemas con mi sistema de amigos. Esta vez logré obtener el id de cada amigo pero no se cómo mostrarlos ni darle ...
  #1 (permalink)  
Antiguo 03/03/2011, 09:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Problema con bucles

Hola,

sigo teniendo problemas con mi sistema de amigos. Esta vez logré obtener el id de cada amigo pero no se cómo mostrarlos ni darle cierto limite (5 amigos para mostrar como máximo). Este es el código:

Código PHP:
Ver original
  1. $query1 = mysql_query("SELECT * FROM friends INNER JOIN users ON friends.user2=users.id WHERE friends.user1=$id AND friends.valid=1") or die(mysql_error());
  2. $contar1 = mysql_num_rows($query1);
  3.  
  4. $query2 = mysql_query("SELECT * FROM friends INNER JOIN users ON friends.user1=users.id WHERE friends.user2=$id AND friends.valid=1") or die(mysql_error());
  5. $contar2 = mysql_num_rows($query2);
  6.  
  7. $total = ($contar1+$contar2)/2;
  8.  
  9. if($total == '') {
  10.    
  11.     echo "Usted no tiene amigos.";
  12.    
  13. } else {
  14.  
  15. while($row1 = mysql_fetch_array($query1) AND $row2 = mysql_fetch_array($query2)) {
  16.     $nombre_amigo1 = $row1['user'];
  17.     $amigo1 = $row1['id'];
  18.     $nombre_amigo2 = $row2['user'];
  19.     $amigo2 = $row2['id'];
  20.    
  21.     while($sql1 = mysql_fetch_array(mysql_query("SELECT avatar FROM users_ifno WHERE id_user = $amigo1 OR id_user = $amigo2"))) {
  22.        
  23.         if($sql1['amigo1'] != $id) {
  24.             echo "<div class='avatar'><img src='".$sql1['avatar']."' title='".$nombre_amigo1."' width='55px' height='55px'></div>";
  25.             } else {
  26.             echo "<div class='avatar'><img src='".$sql1['avatar']."' title='".$nombre_amigo2."' width='55px' height='55px'></div>";    
  27.             }
  28.         }
  29.     }
  30. }

Como pueden ver guardo el total de amigos en la variable $total.

Además uso un bucle dentro de otro bucle para mostrar los avatares. Esto hace que sólo se muestre la imagen del primer amigo muchisimas veces.

Espero que puedan ayudarme.
  #2 (permalink)  
Antiguo 03/03/2011, 14:49
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con bucles

Por que no usas LIMIT en la consulta sql?
  #3 (permalink)  
Antiguo 03/03/2011, 16:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Problema con bucles

Cita:
Iniciado por mayid Ver Mensaje
Por que no usas LIMIT en la consulta sql?
Gracias por tu respuesta. Pasa que mi tabla de amigos esta organizada de la siguiente manera:

friends

user1: ID de usuario que envia la solicitud de amistad
user2: ID de usuario que recibe la solicitud de amistad
valid: valor booleano FALSE por defecto

Entonces, habran ocaciones en que el ID del usuario logeado este en el campo user1 y otras veces en el campo user2 por lo que puede que la primera consulta tenga un total de 10 resultados, entonces al ponerle un LIMIT 0,5 ya tendría a los 5 primeros amigos. En la segunda consulta puede que tenga sólo 2 resultados y al indicar LIMIT 0,5 sólo se mostraría esos 2 amigos. Lo que no me darían los 10 que prentendo mostrar (como ejemplo) aunque en realidad dicho usuario tiene 12 amigos en total.

Etiquetas: bucles
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 21:30.