Foros del Web » Programando para Internet » PHP »

Subconsulta

Estas en el tema de Subconsulta en el foro de PHP en Foros del Web. Hola, estoy algo desesperado y necesitaría vuestra estimable ayuda. Os explico la situación: Tengo 2 tablas (entre otras): Mensajes | Usuarios Necesito cargar todos los ...
  #1 (permalink)  
Antiguo 13/10/2013, 15:56
 
Fecha de Ingreso: octubre-2013
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Subconsulta

Hola, estoy algo desesperado y necesitaría vuestra estimable ayuda.

Os explico la situación:

Tengo 2 tablas (entre otras): Mensajes | Usuarios

Necesito cargar todos los mensajes que coincidan con la ID de un producto que cargo por GET. La cosulta es Básica de la tabla Mensajes y no hay problema, el problema comienza cuando quiero cargarle a cada resultado, su imagen y nombre de usuario.

Lo estoy montando así:

Dame mensajes, idUsuario que tengan el idArticulo = Articulo GET
De cada mensaje resultante, dame la imagen y el nickName.

Esto lo hago con una consulta dentro del resultado:
Código PHP:
------------------------------------------------------
$consulta="SELECT idMensaje, idUsuario, fechaMensaje, textoMensaje  FROM resenyas WHERE idRelacionReferencia='$idArticuloSesion';";

//ejecuto la consulta
$hacerConsulta =mysql_query($consulta,$conectado);
//miro la cantidad de resultados que hay
$numeroDeRegistros5=mysql_num_rows ($hacerConsulta);

for (
$contador=0$contador<$numeroDeRegistros5$contador++)
    {
        
$idMensaje=mysql_result ($hacerConsulta$contador"idMensaje");
    
$idUsuarioResenya=mysql_result ($hacerConsulta$contador"idUsuario");
    
$fechaMensaje=mysql_result ($hacerConsulta$contador"fechaMensaje");
    
$textoMensaje=mysql_result ($hacerConsulta$contador"textoMensaje");
                
    
$consulta2="SELECT nickNameUsuario, fotoUsuario FROM usuarios WHERE idUsuario='$idUsuarioResenya';";
                
    
//ejecuto la consulta
    
$hacerConsulta2 =mysql_query($consulta2,$conectado);
                    
    
$nickNameUsuario=mysql_result ($hacerConsulta2$contador"nickNameUsuario");
    
$fotoUsuario=mysql_result ($hacerConsulta2$contador"fotoUsuario");
            
}
---------------------------- 
El tema es que me lo hace todo bien en tanto a la cantidad de mensajes que hay, pero el nickname y la imagen solo me la proporciona del primer resultado.

Creo que es problema de la consulta dentor de otra consulta, pero espero me podáis ayudar un poquito.

Gracias a todos

Última edición por gnzsoloyo; 13/10/2013 a las 17:18 Razón: Mal etiquetado.
  #2 (permalink)  
Antiguo 13/10/2013, 17:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Subconsulta

No queda claro si el problema es de PHP o de MySQL, por lo que, a fin de evitar eliminar código PHP que pueda ser el origen del asunto, moveré el post al foro de PHP.

Si no es ese el problema, lo regresarán eventualmente.

Movido a Foro de PHP
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/10/2013, 18:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Subconsulta

Eso lo solucionas con un INNER JOIN en una sola consulta, no uses for sino un while, no uses mysql_result (está(ba) diseñada para recuperar contenido de una sola celda), es mejor que uses funciones como mysql_fetch_array o sus parecidas y prefieriblemente usa PDO o Mysqli, ya que la extensión mysql es obsoleta.
__________________
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

Etiquetas: mysql, mysql+consulta
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 23:08.