• Jueves 18 de Abril de 2024, 05:05

Autor Tema:  Nidos De Do-while  (Leído 3004 veces)

Manuel Castro Gómez

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Nidos De Do-while
« en: Viernes 20 de Abril de 2007, 16:13 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Nidos De Do-while
« Respuesta #1 en: Viernes 20 de Abril de 2007, 19:57 »
0
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.  
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Manuel Castro Gómez

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Nidos De Do-while
« Respuesta #2 en: Viernes 20 de Abril de 2007, 21:40 »
0
Yo uso "do" en vez de "Do" en el programa, aquí fué donde lo escribí mal.

Manuel Castro Gómez

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
Re: Nidos De Do-while
« Respuesta #3 en: Viernes 20 de Abril de 2007, 21:44 »
0
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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Nidos De Do-while
« Respuesta #4 en: Sábado 21 de Abril de 2007, 07:20 »
0
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
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================