Foros del Web » Programando para Internet » PHP »

Consulta sql dentro de consulta

Estas en el tema de Consulta sql dentro de consulta en el foro de PHP en Foros del Web. Bueno, hola de nuevo y gracias de nuevo por vuestra ayuda. Me ocurre lo siguiente, muesto los datos de una consulta a una bd: Código ...
  #1 (permalink)  
Antiguo 11/12/2008, 04:20
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 13 años, 2 meses
Puntos: 12
Consulta sql dentro de consulta

Bueno, hola de nuevo y gracias de nuevo por vuestra ayuda. Me ocurre lo siguiente, muesto los datos de una consulta a una bd:

Código PHP:
$result=mysql_query("select distinct email from tabla1",$link);
while(
$row mysql_fetch_array($result)) { 
echo 
$row["email"];

Esto me mostraría todos los correos de la tabla, hasta aquí llego.

Pero lo que quiero es cotejar los datos con otra tabla y evitar que se "pisen":

Código PHP:
$result=mysql_query("select distinct email from tabla1",$link);
while(
$row mysql_fetch_array($result)) { 
$resulto=mysql_query("select * from tabla2 where correo=".$row["email"]."");   
$rowo=mysql_fetch_array($resulto);
if(isset(
$rowo["correo"])){
echo 
"este mail existe";}

No veo nada raro (para mí) y sin embargo falla, así que hay un fallo que no logro ver. Supongo que está en la llamada a la segunda tabla, creo que por usar dos veces mysql_fetch_array... ni idea.

¿Alguna solución?

Gracias
__________________
Chanante!
  #2 (permalink)  
Antiguo 11/12/2008, 06:32
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 15 años
Puntos: 34
Respuesta: Consulta sql dentro de consulta

No comprendo bien que es lo que te está fallando, pero intenta de usar el primer ejemplo con esta consulta:
Código PHP:
$sql "
select 
    distinct email 
from 
    tabla1 
where 
    exists( 
            Select 
                    1 
            from 
                tabla2 
            where 
                correo = tabla1.email 
            )
"
;
$result=mysql_query($sql,$link); 
while(
$row mysql_fetch_array($result)) { 
echo 
$row["email"]; 

Si fallan los resultados probala directamente a MYSQL (con SqlYog, SqlFront, MysqlBrowser, PhpMyAdmin, etc) y fijate que resultados te está dando.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 11/12/2008, 07:01
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 13 años, 2 meses
Puntos: 12
Respuesta: Consulta sql dentro de consulta

Gracias por la respuesta, pero me debe crear un bucle por ahí o algo por el estilo porque no me funciona, en todo caso seguiría sin servirme ya que preciso de ese script en concreto, el error es:

Warning: mysql_fetch_array(): supplied argument is not a valid result resource in...

Y la verdad es que para la tontería que es estoy desesperado.

Gracias y un saludo
__________________
Chanante!
  #4 (permalink)  
Antiguo 11/12/2008, 07:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 8 meses
Puntos: 2534
Respuesta: Consulta sql dentro de consulta

debes aprender a depurar tus consultas de SQL, ya que pueden generar error... y tu pensando que es el PHP !!

Código PHP:
mysql_query(/* SQL */) or die(mysql_error()); 
espero te ayude, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/12/2008, 07:25
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 15 años
Puntos: 34
Respuesta: Consulta sql dentro de consulta

Cita:
Iniciado por sirguy Ver Mensaje
Gracias por la respuesta, pero me debe crear un bucle por ahí o algo por el estilo porque no me funciona, en todo caso seguiría sin servirme ya que preciso de ese script en concreto, el error es:

Warning: mysql_fetch_array(): supplied argument is not a valid result resource in...

Y la verdad es que para la tontería que es estoy desesperado.

Gracias y un saludo
Cita:
Si fallan los resultados probala directamente a MYSQL (con SqlYog, SqlFront, MysqlBrowser, PhpMyAdmin, etc) y fijate que resultados te está dando.
Cita:
Iniciado por pateketrueke Ver Mensaje
debes aprender a depurar tus consultas de SQL, ya que pueden generar error... y tu pensando que es el PHP !!

Código PHP:
mysql_query(/* SQL */) or die(mysql_error()); 
espero te ayude, suerte!

La lógica de la consulta que te déjé teóricamente está bien (a no ser que tengas MYSQL < 4.1, cosa que hoy en día ya es muy raro ver), de ahí en más que tus tablas o campos se llamen así no sé...

Está toda la ayuda que te podemos dar en estos post, espero la sepas usar y apreciar.

Saludos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #6 (permalink)  
Antiguo 11/12/2008, 08:44
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 13 años, 2 meses
Puntos: 12
Respuesta: Consulta sql dentro de consulta

Pues gracias a todos y gracias por vuestra ayuda, primero por el código de nicolaspar que aunque no me haya ido bien nunca había visto ese tipo de consulta y me la guardo para el futuro y lo de Mysql_error me ha permitido ver el fallo.

Gracias a todos una vez más.
__________________
Chanante!
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 20:29.