Foros del Web » Programando para Internet » PHP »

¿Cómo hacer 2 bucles a la vez?

Estas en el tema de ¿Cómo hacer 2 bucles a la vez? en el foro de PHP en Foros del Web. Hola. Estoy trabajando en un php que recoje un XML y le hace un for each. Quiero subir esos datos a mi BBDD y en ...
  #1 (permalink)  
Antiguo 23/02/2011, 12:21
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
¿Cómo hacer 2 bucles a la vez?

Hola. Estoy trabajando en un php que recoje un XML y le hace un for each.

Quiero subir esos datos a mi BBDD y en eso no hay problema.
El problema viene cuando quiero comparar por cada referencia los datos que hay en cada una y por otro lado quiero decirle que si la ref. de la BBDD no está en el XML entonces borre esa referencia.

Si hago un for each y luego le pongo dentro el array de la BBDD entonces me hace por cada ref. la operacion con cada ref. de la BBDD y si lo hago al revés tengo el mismo problema.

Necesitaría tener dos bucles simultaneos que cogiesen al mismo tiempo la ref del xml y la del array

Soy novato, ¿tenéis idea de como puedo hacerlo?.

Gracias
  #2 (permalink)  
Antiguo 23/02/2011, 12:22
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿Cómo hacer 2 bucles a la vez?

no se entiende...
podrías poner un ejemplo con código o explicar un poco mejor el problema ?

saludos.
  #3 (permalink)  
Antiguo 23/02/2011, 12:30
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ¿Cómo hacer 2 bucles a la vez?

Si. quiero comparar los datos de un bucle con los del otro. Son datos de pisos, dormitorios, baños, etc. Unos los recojo de un xml y los otros de la base de datos. Lo que quiero hacer es compararlos antes de subirlos. Puedo pegar aquí el código pero es un poco largo...
  #4 (permalink)  
Antiguo 23/02/2011, 12:36
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿Cómo hacer 2 bucles a la vez?

pero hace un ejemplo...
yo lo que te recomiendo es que guardes ambos datos en un array y luego lo compares

Código PHP:
while ($foo /** sql **/) {
    
$dato1[] = $foo['dato'];
}
while (
$bar /** xml **/) {
    
$dato2[] = $bar['dato'];
}

// realizar comparacion 
  #5 (permalink)  
Antiguo 23/02/2011, 12:44
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ¿Cómo hacer 2 bucles a la vez?

Lo probaré gracias. Es que tengo tantos bucles dentro unos de otros que ya no se ni donde estoy... el caso es que todo lo más importante funciona ya perfectamente, pero me falta este detalle.

creo que dejaré esto un rato, relajaré la mente y cuando me siente otra vez delante pondré todo en orden y aplicaré tu consejo. Muchas gracias.
  #6 (permalink)  
Antiguo 23/02/2011, 14:45
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ¿Cómo hacer 2 bucles a la vez?

Cita:
Iniciado por Hidek1 Ver Mensaje
pero hace un ejemplo...
yo lo que te recomiendo es que guardes ambos datos en un array y luego lo compares

Código PHP:
while ($foo /** sql **/) {
    
$dato1[] = $foo['dato'];
}
while (
$bar /** xml **/) {
    
$dato2[] = $bar['dato'];
}

// realizar comparacion 

Gracias, pero no lo entiendo. Si hago eso cuando hago la comparación solo me muestra el útimo resultado de cada while.
¿hay forma de que sea algo así y que luego compar todos los registros que hay dentro de cada while?
  #7 (permalink)  
Antiguo 23/02/2011, 15:05
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: ¿Cómo hacer 2 bucles a la vez?

esto te sirve?

Código PHP:
while(a=and c=d){
 
y aqui puedes comparar b con d

  #8 (permalink)  
Antiguo 23/02/2011, 15:26
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 17
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ¿Cómo hacer 2 bucles a la vez?

Ya lo resolví. Gracias a ambos por la ayuda. Era una tontería. El problema era que comparaba cada registro de un bucle con el otro a la vez y eso es imposible (creo). Lo que he hecho es dentro de uno de los bucles, en el que importo el array del XML hago dentro una consulta a la BBDD pero limitando el array de la BBDD a el registro cuya referencia sea la del array. De ese modo por cada registro del XML puedo trabajarlo desde MSQL. Esto de ser novato te hace perder mucho tiempo en tonterías, xD. Lo dicho gracias a los dos.
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 07:53.