Foros del Web » Programando para Internet » PHP »

problema con if o while

Estas en el tema de problema con if o while en el foro de PHP en Foros del Web. No sé que le pasa al código me está volviendo loco, envia el valor del value solo en el primer caso: if ($info['rango']!=6 && $info['rango']!=3){ ...
  #1 (permalink)  
Antiguo 19/02/2011, 12:08
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 1 mes
Puntos: 14
problema con if o while

No sé que le pasa al código me está volviendo loco, envia el valor del value solo en el primer caso:

if ($info['rango']!=6 && $info['rango']!=3){

Si envia el value del select...en los demás no los envia...alguien ve el error? Seguro que es una iditez


Código PHP:
<form id="form" name="form" method="post" action="doble.php">

<?php

//Sino es de tipo 6 ni 3 que son casos especiales

if ($info['rango']!=&& $info['rango']!=3){

     

    echo 
'<select name="codigo" id="codigo">';

while(
$row mysql_fetch_array($query)){

$query1 mysql_query("SELECT * FROM titulaciones WHERE codigo = '".$row['codigo']."' ") or die(mysql_error());

$row1 mysql_fetch_array($query1); 

echo 
'<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';

}

 echo
"</select>";

 } elseif(
$info['rango']==6) {

     

     
//Si es de tipo 6

     

$respuesta=mysql_query("select * from titulaciones WHERE campus='".$info['campus']."' AND centro='".$info['centro']."'");

//recorremos los datos

echo '<select name="codigo" id="codigo" size="5">';  

while(
$row1=mysql_fetch_array($respuesta)){

echo 
'<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';

}

echo 
'</select>';

     

     

     } else {

     

     
//Si es de tipo 3

     

     

$respuesta=mysql_query("select * from titulaciones WHERE centro='Escuela de posgrado'");

//recorremos los datos

echo '<select name="codigo" id="codigo" size="5">';  

while(
$row1=mysql_fetch_array($respuesta)){

echo 
'<option value="'.$row1["codigo"].'">'.$row1["denominacion"].'</option>';

}

echo 
'</select>';


 }

?>
  #2 (permalink)  
Antiguo 19/02/2011, 12:32
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
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.
  #3 (permalink)  
Antiguo 19/02/2011, 12:41
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 1 mes
Puntos: 14
Respuesta: problema con if o while

Vale gracias por mejorar el código aunque le quite los
echo '<select name="codigo" id="codigo" size="5">'; que te dejaste sin querer.

Sigo teniendo le mismo problema, est a condición
if ($info['rango']!=6 && $info['rango']!=3){

SI envia el dato(value="'.$row1["codigo"].'") , el resto de los casos no envía nada, ni si quiera lo envía vacío.

Sobre info no te preocupes es una variable anterior y está correcta. También en los demás casos se crean los select correctamente y mirando le codigo fuente generado llevan su codigo puesto correctamente, el problema es que no lo pasa al action doble.php
  #4 (permalink)  
Antiguo 19/02/2011, 13:12
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 1 mes
Puntos: 14
Respuesta: problema con if o while

Todo arregldo era problema del archivo doble.php

Etiquetas: Ninguno
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 04:28.