Programación Web y Scripting > PHP
Nidos De Do-while
(1/1)
Manuel Castro Gómez:
Buenas amigos de solo código.
Estoy haciendo un reporte en PDF y debo arrojar totales por varios niveles de control;
para esto uso varios ciclos Do-While anidados. Cómo es lógico hago una lectura de archivo al principio de todo el proceso para obtener el primer registro y otra en el Do-While más interno (la lectura en con mysql_fectch_array).
Por cada ciclo Do-While necesito verificar si me ha cambiado el correspondiente campo de control y por supuesto si hubo fin de archivo.
Yo intenté poner en cada While una condición múltiple pero aparentemente php no lo permite; mi pregunta es: ¿cómo puedo hacer para que por ejemplo si rompe un nivel de control pero no es fin de archivo que haga lo que yo quiero y vuelva a reiniciar el ciclo.
A continuación les pongo un modelo de lo que estoy diciendo:
if ($Registro = mysql_fetch_array($_SESSION['RegistroConsulta'])):
$Eof = false;
else:
$Eof = true;
endif;
Do
{ TotalDepartamento = 0;
DeptoAnt = DeptoActual;
Do
{ TotalSeccion = 0;
SeccionAnt = SeccionAct;
Do
{ Contador++;
if ($Registro = mysql_fetch_array($_SESSION['RegistroConsulta'])):
$Eof = false;
else:
$Eof = true;
endif;
} while (SeccionActual == SeccionAnt ||
DeptoActual == DeptoAnt ||
$Eof == true);
} while (DeptoActual == DeptoAnt ||
$Eof == true)
} while ($Eof == false)
Mi duda específica es como emular el uso de condiciones múltiples en un while ya que aparentemente php no lo permite.
Espero haberme explicado bién y agradezco cualquier ayuda:
ibito:
Si se pueden usar condiciones múltiples con el while... y con el do...while también.
intenta cambiar
--- Código: Text --- Do por
--- Código: Text --- do
Manuel Castro Gómez:
Yo uso "do" en vez de "Do" en el programa, aquí fué donde lo escribí mal.
Manuel Castro Gómez:
Y tengo otro problemita, en la instrucción mysql_fetch_array me da el siguiente mensaje de error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\AppServ\www\servicio-medico\privado\Informes\inf_relacionmensualdeconsultas.php on line 460
F_Tanori:
El problema es en
--- Código: Text ---$_SESSION['RegistroConsulta'] que no tiene resultados y en ese caso devuelve false
la funcion mysql_fetch_array espera como parametro un result resource de una consulta
revisa la variable de Sesion que estas almacenado correctamente y recuerda que para usarlas es necesario usar session_start()
Saludos
Navegación
Ir a la versión completa