Foros del Web » Programando para Internet » PHP »

Consulta una tras otra

Estas en el tema de Consulta una tras otra en el foro de PHP en Foros del Web. Hola, de antemano agradezco su colaboración La idea es q tengo q obtener los resultados de una tabla y sobre esos resultados hacer otra consulta, ...
  #1 (permalink)  
Antiguo 06/08/2011, 15:36
 
Fecha de Ingreso: marzo-2004
Mensajes: 199
Antigüedad: 20 años, 7 meses
Puntos: 1
Consulta una tras otra

Hola, de antemano agradezco su colaboración

La idea es q tengo q obtener los resultados de una tabla y sobre esos resultados hacer otra consulta, mas o menos asi.

La primera parte es obtener de la tabla relations todos los Id_user2 en donde el Id_user1 = sesion y el estado de la relacion sea 1.

$qA = mysql_query("select distinct Id_user2 from relations where (Id_user1='$sesion' and state='1');",$conn) or die ("Error :".mysql_error());
while($aqA = mysql_fetch_array($qA))

la segunda parte es decirle q me traiga de la tabla de usuarios aquellos quienes el ID es diferente a la sesion y tambien su ID sea diferente al q se trajo de la consulta anterior, ese lo hice asi:

$qB = mysql_query("select * from usuarios where (ID!='$aqA[Id_usuario2]' && ID!='$sesion');",$conn) or die ("Error :".mysql_error());
$aqB = mysql_fetch_array($qB);

mediante un do traigo los resultados

echo $aqB[Nombre];

haciendolo de esta manera y en mi ejercicio el me debe mostrar solo 6 de 10 registros, los 3 q no debe mostrar son:
1. el registro del Logueado (perfecto, ese no lo muestra)
y 3 mas q estan en la tabla de relations, pero solo lo asume para el ultimo q se registro.

De nuevo reitero mi agradecimiento por su colaboracion
  #2 (permalink)  
Antiguo 07/08/2011, 19:15
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Consulta una tras otra

Bueno, antes que nada quiero recomendar que al hacer una pregunta se debe ser bastante conciso porque la verdad no lei ni tres lineas y no entendi absolutamente nada. Es muy enredado la manera como explicas el problema.

En segundo lugar por lo poco que logre entender si se necesita hacer una consulta que implica dos tablas distintas me imagino que tendran una relación entre ellas.

En terminos generales lo que se debe hacer es una consulta del tipo JOIN para realizar consultas multitabla. Creo que puedes empezar a revisar esta información:

http://www.aulaclic.es/sql/t_3_4.htm

Espero que la información sea de utilidad.
  #3 (permalink)  
Antiguo 08/08/2011, 04:05
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Consulta una tras otra

Yo lo he entendido perfectamente. En la segunda consulta quiere extraer los ids que no estén en la primera.

La solución óptima es hacerlo en SQL todo, así no tienes que hacer bucles innecesarios con PHP.

CONSULTA 1: SELECT DISTINCT Id_user2 FROM relations WHERE (Id_user1='$sesion' and state='1')
CONSULTA 2: SELECT * FROM usuarios WHERE (ID != '$aqA[Id_usuario2]' && ID != '$sesion')

Queremos añadir la consulta 1 a la 2, de forma que los id que resultan de la 1 no aparezcan en la dos:
Código SQL:
Ver original
  1. SELECT * FROM usuarios WHERE (ID NOT IN (SELECT DISTINCT Id_user2 FROM relations WHERE (Id_user1='$sesion' AND state='1')) AND ID != '$sesion')

Con eso te valdrá, 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?
  #4 (permalink)  
Antiguo 08/08/2011, 16:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 199
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Consulta una tras otra

Bueno señores Cuasatar y vgonga1986 quiero agradecer su aporte,
cuasatar, soy conciente de la dificultad para explicar y prometo q la proxima organizo mejor la pregunta, tu aporte con respecto al vinculo me fue muy util, no para lo q estaba necesitando pero si para otras cosas q no habia podido solucionar, en cuanto al aporte de vgonga fue perfecto para lo que estaba preguntando, de nuevo muchas gracias :)

Etiquetas: mysql, registro, tabla, tras, 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 10:20.