SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: Manuel Castro Gómez en Viernes 20 de Abril de 2007, 16:13

Título: Nidos De Do-while
Publicado por: Manuel Castro Gómez en Viernes 20 de Abril de 2007, 16:13
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:
Título: Re: Nidos De Do-while
Publicado por: ibito en Viernes 20 de Abril de 2007, 19:57
Si se pueden usar condiciones múltiples con el while... y con el do...while también.
intenta cambiar
Código: Text
  1.  
  2. Do
  3.  
  4.  
por
Código: Text
  1.  
  2. do
  3.  
  4.  
Título: Re: Nidos De Do-while
Publicado por: Manuel Castro Gómez en Viernes 20 de Abril de 2007, 21:40
Yo uso "do" en vez de "Do" en el programa, aquí fué donde lo escribí mal.
Título: Re: Nidos De Do-while
Publicado por: Manuel Castro Gómez en Viernes 20 de Abril de 2007, 21:44
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
Título: Re: Nidos De Do-while
Publicado por: F_Tanori en Sábado 21 de Abril de 2007, 07:20
El problema es en
Código: Text
  1. $_SESSION['RegistroConsulta']
  2.  
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