Foros del Web » Programando para Internet » PHP »

Alternativa a "while", sin loop

Estas en el tema de Alternativa a "while", sin loop en el foro de PHP en Foros del Web. Hola! Tengo el siguiente código, que de acuerdo a si ciertos campos tienen cierto contenido, me selecciona unos checkboxs: Código PHP: <?php $consulta_turnos  =  mysql_query ...
  #1 (permalink)  
Antiguo 23/04/2008, 05:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 73
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Alternativa a "while", sin loop

Hola! Tengo el siguiente código, que de acuerdo a si ciertos campos tienen cierto contenido, me selecciona unos checkboxs:
Código PHP:
<?php
$consulta_turnos 
mysql_query("SELECT 
                   establecimientos.id, 
                   turnos.turno, 
                   establecimientos2turnos.id_turno 
                
                FROM 
                   establecimientos 
                
                LEFT JOIN establecimientos2turnos ON establecimientos.id = establecimientos2turnos.id_est 
                LEFT JOIN turnos ON establecimientos2turnos.id_turno = turnos.id 
                
                WHERE 
                   establecimientos.id = '$id'"
,$connect);
    
                while(
$turnos mysql_fetch_assoc($consulta_turnos))

                {
      
?>
      
      
      
      Mañana:         <input name="manana" type="checkbox" value="M" 
      
      <?php
         
if ($turnos['id_turno'] == 1)
         {
         echo    
"checked=\"checked\"";
         }
     
?>
      
      />&nbsp;&nbsp;

      Tarde:         <input name="tarde" type="checkbox" value="T" 
      
      <?php
         
if ($turnos['id_turno'] == 2)
         {
         echo    
"checked=\"checked\"";
         }
     
?>
      
      />&nbsp;&nbsp;

      Vespertino:     <input name="vespertino" type="checkbox" value="V"
      
      <?php
         
if ($turnos['id_turno'] == 3)
         {
         echo    
"checked=\"checked\"";
         }
     
?>
      
      />&nbsp;&nbsp;

      Noche:         <input name="noche" type="checkbox" value="N" 
      
      <?php
         
if ($turnos['id_turno'] == 4)
         {
         echo    
"checked=\"checked\"";
         }
     
?>
      
      /><br /><br />
      
      
      
      <?php
                
}
                
                
mysql_free_result($consulta_turnos);
     
?>
El problema es que me repite las cuatro casillas de turnos, por cada if que de resultado true...
Con qué expresión puedo reemplazar el while, para que quede todo como está, pero sin repetir la fila tantas veces?

Gracias!!!
  #2 (permalink)  
Antiguo 23/04/2008, 09:36
 
Fecha de Ingreso: marzo-2008
Mensajes: 73
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Alternativa a "while", sin loop


No?

PD: Otra cosita: Se puede hacer una "pausa" en el loop?

Por ej:
while($algo)
{cosas que tienen que repetirse}
otras cosas que no tienen que repetirse
{cosas que se repiten nuevamente}
  #3 (permalink)  
Antiguo 23/04/2008, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Alternativa a "while", sin loop

Hola ClickyMouse,

Creo que deberías de revisar tu algoritmo, ya que no se puede hacer una pausa, pero si puedes usar banderas con booleanos para ejecutar cierto código una vez por ejemplo:
Código PHP:
$first true;
$i 0;
while( 
$i ) {
     if( 
$first ) {
             echo 
"Esto se imprime solo una vez";
             
$first false;
     }
     echo 
$i;
     
$i++;

Saludos.
  #4 (permalink)  
Antiguo 25/04/2008, 11:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 73
Antigüedad: 16 años, 1 mes
Puntos: 0
Sonrisa Re: Alternativa a "while", sin loop

Y cómo podría utilizar esto para este pedazo de código?
Código PHP:
 <li>
                            <
strong>Especialidades/Orientaciones:</strong><br />
                            <
div class="sangria\">";
                            
                            
                            
$consulta_planes mysql_query("SELECT 
                                                     establecimientos.id, 
                                               planes.plan, 
                                               planes.resolucion 
                                               
                                               FROM 
                                                   establecimientos 
                                               
                                               LEFT JOIN establecimientos2planes ON establecimientos.id = establecimientos2planes.id_est 
                                               LEFT JOIN planes ON establecimientos2planes.id_plan = planes.id 
                                               
                                               WHERE 
                                                   establecimientos.id = '$id'"
,$connect);
    
                              while(
$planes mysql_fetch_assoc($consulta_planes))

                                      {
                                    
$planesplanes $planes['plan'];
                                    
                                    if (!empty(
$planesplanes))
                                        {
                                    echo    
"- $planesplanes (N&ordm; ".$planes['resolucion'].")<br />";
                                        }
                                }
                                
                                
mysql_free_result($consulta_planes);
                            
                            
                           echo 
"</li>"
Para que no se muestre el título del <li> (Especialidades) si no hay ninguna en la DB.

Gracias!
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 23:39.