Foros del Web » Programando para Internet » PHP »

¿Como muestro esta consulta?

Estas en el tema de ¿Como muestro esta consulta? en el foro de PHP en Foros del Web. Hola a todos!, pedi ayuda en el foro de mysql porque no me salia una consulta, gracias a dios los chicos se coparon y bueno, ...
  #1 (permalink)  
Antiguo 01/03/2012, 18:24
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
¿Como muestro esta consulta?

Hola a todos!, pedi ayuda en el foro de mysql porque no me salia una consulta, gracias a dios los chicos se coparon y bueno, salio. Me busca todo ... Pero el problema lo tengo al mostrar, nunca vi un codigo mysql asi jajaja, quizas ustedes saben como mostrar esto:

Este es el codigo sql que quiero mostrar:

Código PHP:
Ver original
  1. $q_estadisticas_both = mysql_query('SELECT I.*
  2. FROM interaccion I
  3. WHERE (I.a_interaccion = "'.$_SESSION['fid_username'].'"
  4.       AND I.a_interaccion IN(SELECT
  5.                                de_interaccion
  6.                              FROM interaccion H
  7.                              WHERE H.de_interaccion = "'.$_SESSION['fid_username'].'"))
  8.    AND valor_interaccion <> 3',$db);

de la tabla interaccion quiero sacar de_interaccion e igualarlo con fid_usuario de la tabla usuarios y mostrarlo aca.

lo intente de la siguiente manera:

Código PHP:
Ver original
  1. <?php while($todo_bien = mysql_fetch_array($q_estadisticas_both)){?>
  2. <table width="500px" border="1">
  3.   <tr>
  4.     <td width="50px"><?php echo '<img src=https://graph.facebook.com/'.$todo_bien['de_interaccion'].'/picture>';?></td>
  5.     <td width="300px"><?php echo $quien_te['nombrecompleto_usuario'];?></td>
  6.     <td><?php if($quien_te['valor_interaccion'] == 1) echo "Dijo Sí";
  7.               if($quien_te['valor_interaccion'] == 2) echo "Dijo Capaz!";?></td>
  8.   </tr>
  9. </table>
  10. <?php }?>

Me arroja estos errores
Notice: Undefined index: valor_interaccion in C:\wamp\www\mostrar-atracciones.php on line 60

Notice: Undefined index: valor_interaccion in C:\wamp\www\mostrar-atracciones.php on line 61 y algunos mas, obviamente el array esta mal, pero no entiendo la consulta y queria saber si me podian ayudar xD

En teoria, quiero mostrar interaccion.de_interaccion, usuarios.nombrecompleto_usuario y interaccion.valor_interaccion.
Siempre y cuando interaccion.de_interaccion, usuarios.fid_usuario esten enlazados para poder obtener el nombre completo

Aclaro, esto no es un problema de consulta, la consulta esta bien, sino no se como mostrarla y me quedo por la mitad!
__________________
Mi primera web: http://www.mascoteame.com
  #2 (permalink)  
Antiguo 01/03/2012, 18:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: ¿Como muestro esta consulta?

y porqué estás usando en el while $quien_te en vez de $todo_bien ?

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 01/03/2012, 18:46
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: ¿Como muestro esta consulta?

ahi lo arreglé, habia algunos problemas mas, mira:

Código PHP:
Ver original
  1. <?php while($todo_bien = mysql_fetch_array($q_estadisticas_both)){?>
  2. <table width="500px" border="1">
  3.   <tr>
  4.     <td width="50px"><?php echo '<img src=https://graph.facebook.com/'.$todo_bien['de_interaccion'].'/picture>';?></td>
  5.     <td width="300px"><?php echo $todo_bien['nombrecompleto_usuario'];?></td>
  6.     <td><?php if($todo_bien['valor_interaccion'] == 1) echo "Dijo Sí";
  7.               if($todo_bien['valor_interaccion'] == 2) echo "Dijo Capaz!";?></td>
  8.   </tr>
  9. </table>
  10. <?php }?>

Sin embargo no me muestra esta parte: <?php echo $todo_bien['nombrecompleto_usuario'];?

La consulta es:

Código PHP:
Ver original
  1. $q_estadisticas_both = mysql_query('SELECT I.*
  2. FROM interaccion I
  3. WHERE (I.a_interaccion = "'.$_SESSION['fid_username'].'"
  4.       AND I.de_interaccion IN(SELECT
  5.                                a_interaccion
  6.                              FROM interaccion H
  7.                              WHERE H.de_interaccion = "'.$_SESSION['fid_username'].'"))
  8.    AND valor_interaccion <> 3
  9. ',$db);
__________________
Mi primera web: http://www.mascoteame.com
  #4 (permalink)  
Antiguo 01/03/2012, 20:14
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: ¿Como muestro esta consulta?

Este es mi problema real:



Fijense los nombres, estan desordenados, les juro que ya intente de todo pero no consigo la forma de hacer un join entre usuarios.fid_usuario y la persona que muestro ahi, en todo caso seria interaccion.de_interaccion o interaccion.a_interaccion

Estoy perdido..
__________________
Mi primera web: http://www.mascoteame.com
  #5 (permalink)  
Antiguo 01/03/2012, 20:29
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: ¿Como muestro esta consulta?

Hola.

Para ordenar los registros por nombre deberías usar "ORDER BY nombrecompleto_usuario" al final de tu consulta. Al final puedes agregar ASC o DESC si quieres ordenar de manera ascendente o descendente.
Te recomiendo que no uses el asterisco (*) cuando vas a seleccionar los campos, mejor especifica los campos que quieres mostrar ya que si en el futuro agregas más, se van a seleccionar esos campos también y si no se muestran debajo están siendo cargados al vicio.

Un saludo.
  #6 (permalink)  
Antiguo 01/03/2012, 23:15
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: ¿Como muestro esta consulta?

No, con order by no funciona, tiene que haber un join entre fid_usuario y a_interaccion o de_interaccion para despues hacer un order by, algo que intente y no me sale sinceramnete, de todos modos creo que el codigo esta bien pero no tengo como mostrar esa parte, lo demas se puede optimizar supongo ... :(
__________________
Mi primera web: http://www.mascoteame.com
  #7 (permalink)  
Antiguo 02/03/2012, 00:35
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: ¿Como muestro esta consulta?

Comprueba el nombre de los campos que utilizo en LEFT JOIN porque no sé sin son los correctos, pero la cosa sería más o menos así. Si no funciona postea el SQL de las tablas para que pueda crearlas y hacer pruebas, saludos
Código MySQL:
Ver original
  1. #NO hay información del usuario porque no se estaba seleccionando la tabla usuarios
  2. SELECT U.*, I.*
  3.     FROM interaccion I
  4.     LEFT JOIN usuarios U ON (I.de_interacion = U.id)
  5.     WHERE (I.a_interaccion = "'.$_SESSION['fid_username'].'"
  6.           AND I.a_interaccion IN(SELECT
  7.                                    de_interaccion
  8.                                  FROM interaccion H
  9.                                  WHERE H.de_interaccion = "'.$_SESSION['fid_username'].'"))
  10.        AND valor_interaccion <> 3;
  11.        
  12. #Por el mismo motivo falla el orden
  13. SELECT U.*, I.*
  14.     FROM interaccion I
  15.     LEFT JOIN usuarios U ON (I.de_interacion = U.id)
  16.     WHERE (I.a_interaccion = "'.$_SESSION['fid_username'].'"
  17.           AND I.a_interaccion IN(SELECT
  18.                                    de_interaccion
  19.                                  FROM interaccion H
  20.                                  WHERE H.de_interaccion = "'.$_SESSION['fid_username'].'"))
  21.        AND valor_interaccion <> 3 ORDER BY U.nombrecompleto_usuario ASC;
__________________
Fere libenter homines, id quod volunt, credunt.
  #8 (permalink)  
Antiguo 02/03/2012, 10:22
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: ¿Como muestro esta consulta?

Resuelto!

Código PHP:
Ver original
  1. $q_estadisticas_both = mysql_query('SELECT U.*, I.*
  2.    FROM interaccion I
  3.    LEFT JOIN usuarios U ON (I.de_interaccion = U.fid_usuario)
  4.    WHERE (I.a_interaccion = "'.$_SESSION['fid_username'].'"
  5.          AND I.a_interaccion IN(SELECT
  6.                                   de_interaccion
  7.                                 FROM interaccion H
  8.                                 WHERE H.de_interaccion = "'.$_SESSION['fid_username'].'"))
  9.       AND valor_interaccion <> 3 ORDER BY U.nombrecompleto_usuario ASC;
  10. ',$db);

Me lo muestra como deberias ser, GRACIAS!!! k+
__________________
Mi primera web: http://www.mascoteame.com

Etiquetas: mysql, sql, tabla, usuarios
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 01:16.