Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/02/2011, 12:32
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: problema con if o while

No termino de comprender tu problema, no aclaras de donde viene $info["rango"], pero estás poniendo muchas lineas de más, si va a salir un select y son sus options los que dependen del valor, puedes hacer esto:


Código PHP:
Ver original
  1. <form id="form" name="form" method="post" action="doble.php">
  2. <?php
  3. //Sino es de tipo 6 ni 3 que son casos especiales
  4. echo '<select name="codigo" id="codigo">';
  5. if ($info['rango']!=6 && $info['rango']!=3){
  6.     while($row = mysql_fetch_array($query)){
  7.         $query1 = mysql_query("SELECT * FROM titulaciones WHERE codigo = '".$row['codigo']."' ") or die(mysql_error());
  8.         $row1 = mysql_fetch_array($query1);
  9.         echo '<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';
  10.     }
  11. } elseif($info['rango']==6) {
  12.      //Si es de tipo 6
  13.     $respuesta=mysql_query("select * from titulaciones WHERE campus='".$info['campus']."' AND centro='".$info['centro']."'");
  14.     //recorremos los datos
  15.     echo '<select name="codigo" id="codigo" size="5">';  
  16.     while($row1=mysql_fetch_array($respuesta)){
  17.         echo '<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';
  18.  
  19.     }
  20. } else {
  21.      //Si es de tipo 3
  22.     $respuesta=mysql_query("select * from titulaciones WHERE centro='Escuela de posgrado'");
  23.     //recorremos los datos
  24.     echo '<select name="codigo" id="codigo" size="5">';  
  25.     while($row1=mysql_fetch_array($respuesta)){
  26.         echo '<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';
  27.     }
  28. }
  29. echo '</select>';
  30. ?>

Por cierto, es mejor hacer uso de switch en vez de if anidados que dificultan expresar la lógica del algoritmo.