Foros del Web » Programando para Internet » PHP »

Comparando 2 tablas actualizando 1

Estas en el tema de Comparando 2 tablas actualizando 1 en el foro de PHP en Foros del Web. Consulto 2 tablas de las cuales cada registro de la primera tabla se tiene que comparar con todos los de la segunda para que si ...
  #1 (permalink)  
Antiguo 27/03/2008, 14:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Comparando 2 tablas actualizando 1

Consulto 2 tablas de las cuales cada registro de la primera tabla se tiene que comparar con todos los de la segunda para que si coinciden lleve acabo el update

1 - 1
1 - 2
1 - 3
etc.....

pero lo que NO me hace es

2 - 1
2 - 2
etc...

El problema que veo es que el recordset del while anidado esta al final y por eso ya no entra. ( en pocas palabras solo recorre una vez).

Como podria regresar el apuntador del $q2row al inicio(detalle en codigo).

Gracias de antemano


$query=mysql_query("SELECT * FROM tabla1",$conn) or die ("query no generada");
$query2=mysql_query("SELECT * FROM tabla2",$conn) or die ("query2 no realizada");

while ($q1row=mysql_fetch_array($query) > 0)
{

while ($q2row=mysql_fetch_array($query2) > 0)

{

if ($q1row['cve'] == $q2row['cve'])
{
$car=$q2row['caract'];
$pegacaract=mysql_query("UPDATE tabla1 SET caract=$car",$conn);
$i=$i+1;
}
else
{
if ($q1row['id'] == $q2row['id'])
{
$car=$q2row['caract'];
$pegacaract=mysql_query("UPDATE tabla1 SET caract=$car",$conn);
$i=$i+1;
}
}

}
$i=$i+1;
}

echo $i;
  #2 (permalink)  
Antiguo 27/03/2008, 15:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Re: Comparando 2 tablas actualizando 1

algun comentario?
  #3 (permalink)  
Antiguo 27/03/2008, 19:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Re: Comparando 2 tablas actualizando 1

algun comentario???
  #4 (permalink)  
Antiguo 27/03/2008, 19:31
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: Comparando 2 tablas actualizando 1

Tu problema esta en que estas anidando los whiles!

Hace algo asi:

while ($q1row=mysql_fetch_array($query)) {

$q2row=mysql_fetch_array($query2); // sin while

...
...

}
__________________
Salu2!
  #5 (permalink)  
Antiguo 27/03/2008, 20:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Re: Comparando 2 tablas actualizando 1

ya lo intente pero solo hace el recorrido del primer while el numero de registros que lee es de una tabla nada mas, necesito que multiplique que el numero de registros comparados sean.

(num registros tabla 1 x numero registros tabla 2)

Mas o menos es la idea de lo que haria un ciclo FOR

i - j
i - j+1
i - j+2
....
....
i+1 - j
i+1 - j+1
i+1 - j+2
i+1 - j+3
......
  #6 (permalink)  
Antiguo 27/03/2008, 20:29
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: Comparando 2 tablas actualizando 1

Lei mal... crei que querias:

1-1
2-2
etc.
__________________
Salu2!
  #7 (permalink)  
Antiguo 27/03/2008, 21:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Re: Comparando 2 tablas actualizando 1

alguien que tenga alguna idea?
  #8 (permalink)  
Antiguo 27/03/2008, 21:23
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Comparando 2 tablas actualizando 1

Usa mysql_data_seek()

http://www.forosdelweb.com/2274356-post10.html

Un saludo,
  #9 (permalink)  
Antiguo 27/03/2008, 22:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 59
Antigüedad: 16 años
Puntos: 0
Re: Comparando 2 tablas actualizando 1

Muchas gracias, problema solucionado!!!

saludos........................
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:03.