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

[0] Índice de Mensajes

Ir a la versión completa