Foros del Web » Programando para Internet » PHP »

Problema con dos bucles

Estas en el tema de Problema con dos bucles en el foro de PHP en Foros del Web. No me había pasado nunca, pero al hacer dos bucles do while seguidos recorriendo los registros de una misma consulta, me hace solo el primero. ...
  #1 (permalink)  
Antiguo 14/01/2010, 12:45
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 5 meses
Puntos: 0
Problema con dos bucles

No me había pasado nunca, pero al hacer dos bucles do while seguidos recorriendo los registros de una misma consulta, me hace solo el primero.
Es decir, ej:
//consulta
$sql="SELECT ...";
$result = mysql_query($sql);

//bucle1
do{
if($row['a']!=""){
echo $row['a'];
}
while($row=mysql_fetch_assoc($result)){

//bucle1
do{
if($row['a']==""){
echo $row['b'];
}
while($row=mysql_fetch_assoc($result)){

mysql_free_result($result);

------------------
He intentado liberar dos veces la consulta al finalizar cada bucle pero entonces debería de otravez realizar la consulta, pero tampoco me funciona. Que es lo que hago mal? hay alguna opcion de resetear la consulta creada, para poder recorrer por segunda vez la tabla consultada sin volver a llamarla?

Gracias. Saludos.
  #2 (permalink)  
Antiguo 14/01/2010, 12:49
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: Problema con dos bucles

usa while solo.. no do while
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 14/01/2010, 15:54
 
Fecha de Ingreso: julio-2008
Mensajes: 85
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con dos bucles

El segundo bucle no funciona, porque el primero ya ha agotado todas las filas. La función mysql_fetch_assoc tiene un contador interno que se va incrementando. Al llegar al fin del primer bucle, el segundo no va a funcionar ya que sigue estando el contador en la última fila de resultados.

Para indicarle que vuelva a la posición inicial tienes esta función
http://es2.php.net/manual/en/functio...-data-seek.php

Etiquetas: bucles, 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 03:58.