Foros del Web » Programando para Internet » PHP »

No trabaja el IF (else no se ejecuta)

Estas en el tema de No trabaja el IF (else no se ejecuta) en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema y no tengo idea porqué sucede tengo un condicional muy simple, si la variable NO es igual a "subtitulo" entonces ...
  #1 (permalink)  
Antiguo 04/11/2013, 19:29
 
Fecha de Ingreso: febrero-2011
Ubicación: Cúcuta
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Exclamación No trabaja el IF (else no se ejecuta)

Hola, tengo el siguiente problema y no tengo idea porqué sucede tengo un condicional muy simple, si la variable NO es igual a "subtitulo" entonces que de la salida para imprimir la pregunta (lo cual funciona muy bien) y si ES IGUAL a subtitulo entonces lo imprima como un encabezado de nivel 3, el problema es que si la condición es verdadera todo va muy bien, pero si la condición es falsa, no ejecuta ni lo uno ni lo otro, si fuera un error en la condición, o siempre me daría verdadero o siempre falso, a continuación pongo el código problemático:

Código PHP:
<?php if($preguntas["opcion1"] != "subtitulo"){
                        if(
$preguntas['correcta'] == $preguntas['respuesta']){
                            
$correcta 1;
                        } else {
                            
$correcta 0;
                        }
                        
?>
                        <div id="preg_ind">
                            <div class="preg_cont"><?php echo $preguntas['preg_preg']; ?></div>
                            <div class="option<?php if($preguntas['respuesta'] == 1) {
                                if(
$preguntas['correcta'] == 1) { $preg1 true?> correcta<?php } else { ?> incorrecta<?php } } ?>"><input type="radio" name="<?php if($correcta == 1){ } else {?>pregunta<?php echo $preguntas['id_preg']; } ?>" value="1"<?php if($preguntas['respuesta'] == 1){ ?> checked<?php } if($correcta == 1){ ?> disabled<?php ?><?php echo $preguntas["opcion1"]; ?></div>
                            <div class="option<?php if($preguntas['respuesta'] == 2) {
                                if(
$preguntas['correcta'] == 2) { $preg2 true?> correcta<?php } else { ?> incorrecta<?php } } ?>"><input type="radio" name="<?php if($correcta == 1){ } else {?>pregunta<?php echo $preguntas['id_preg']; } ?>" value="2"<?php if($preguntas['respuesta'] == 2){ ?> checked<?php } if($correcta == 1){ ?> disabled<?php ?><?php echo $preguntas["opcion2"]; ?></div>
                            <div class="option<?php if($preguntas['respuesta'] == 3) {
                                if(
$preguntas['correcta'] == 3) { $preg3 true?> correcta<?php } else { ?> incorrecta<?php } } ?>"><input type="radio" name="<?php if($correcta == 1){ } else {?>pregunta<?php echo $preguntas['id_preg']; } ?>" value="3"<?php if($preguntas['respuesta'] == 3){ ?> checked<?php } if($correcta == 1){ ?> disabled<?php ?><?php echo $preguntas["opcion3"]; ?></div>
                            <div class="option<?php if($preguntas['respuesta'] == 4) {
                                if(
$preguntas['correcta'] == 4) { $preg4 true?> correcta<?php } else { ?> incorrecta<?php } } ?>"><input type="radio" name="<?php if($correcta == 1){ } else {?>pregunta<?php echo $preguntas['id_preg']; } ?>" value="4"<?php if($preguntas['respuesta'] == 4){ ?> checked<?php } if($correcta == 1){ ?> disabled<?php ?><?php echo $preguntas["opcion4"]; ?></div>
                                <?php if($correcta == 1){ ?><input type="hidden" name="pregunta<?php echo $preguntas['id_preg']; ?>" value="<?php echo $preguntas['respuesta']; ?>" /><?php } else { } ?>
                        </div>
                    <?php
                    
++$num;
                    } else { 
?>
                        <h3 class="sub_estudio"><?php echo $preguntas['preg_preg']; ?></h3>
                    <?php
                    
?>
Ni siquiera me imprime el h3 no arroja absolutamente nada cuando la condición es falsa. y no tengo idea que podrá ser.

Última edición por jjsg08; 04/11/2013 a las 19:34
  #2 (permalink)  
Antiguo 04/11/2013, 20:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: No trabaja el IF (else no se ejecuta)

yo que tu coloco esto al principio del archivo

Código PHP:
Ver original
  1. ini_set("display_errors", 1);

para ver los errores, porque debe de haber alguno que no te muestra el php
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 04/11/2013, 20:20
 
Fecha de Ingreso: febrero-2011
Ubicación: Cúcuta
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No trabaja el IF (else no se ejecuta)

Jejeje, me salieron un poco de avisos pero ninguno que me de una luz sobre el problema con el if:

Notice: A session had already been started - ignoring session_start() in /home/esperanz/public_html/site/login.php on line 2

Notice: Undefined variable: action in /home/esperanz/public_html/site/login.php on line 24

Notice: Undefined variable: action in /home/esperanz/public_html/site/login.php on line 70

Notice: Undefined variable: accion in /home/esperanz/public_html/site/index.php on line 251

Notice: Undefined variable: accion in /home/esperanz/public_html/site/index.php on line 251

Notice: Undefined variable: accion in /home/esperanz/public_html/site/index.php on line 251

Notice: Undefined variable: alert in /home/esperanz/public_html/site/index.php on line 357
  #4 (permalink)  
Antiguo 04/11/2013, 20:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No trabaja el IF (else no se ejecuta)

Cita:
pero ninguno que me de una luz sobre el problema con el if:
¿No te da ninguna idea?
A mi me da toda la impresión de que hay HTML y JavaScript entremezclado en código PHP, ya que tanto "action" como "alert", no son variables de PHP, y sin embargo en alguna parte están dentro de él.

Creo que el problema es de depuración de ese código.
Deberías separar mejor las cosas, armando un código menos ambicioso y más ortodoxo. Menos ambicioso, en cuanto a lo dinámico, porque evidentemente no estás dominando bien cómo hacer esa integración.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 04/11/2013, 20:47
 
Fecha de Ingreso: febrero-2011
Ubicación: Cúcuta
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No trabaja el IF (else no se ejecuta)

jejeje, las variables $action y $alert como tal no son de PHP, pero yo las declaré y las uso sin problemas, el Notice es porque esas variables se generan con un condicional y otro condicional al verificar si tienen los valores correctos entonces ejecuta acciones, no es HTML revuelto en el PHP.
  #6 (permalink)  
Antiguo 05/11/2013, 03:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No trabaja el IF (else no se ejecuta)

Postea el código completo, y veamos si es cierto lo que dices.
Con que lo describas, no alcanza. Necesitamos VERLO.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 05/11/2013, 11:47
 
Fecha de Ingreso: febrero-2011
Ubicación: Cúcuta
Mensajes: 12
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No trabaja el IF (else no se ejecuta)

la verdad no entiendo para que se pueda necesitar el código completo si el problema es un simple condicional, que cuando el campo es igual a "subtitulo" funciona, y cuando es diferente no hace lo que está en el ELSE.
  #8 (permalink)  
Antiguo 05/11/2013, 12:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No trabaja el IF (else no se ejecuta)

Cita:
la verdad no entiendo para que se pueda necesitar el código completo
Para poder ver lo que tu no estás viendo, porque el código es tuyo.
Una de las reglas del desarrollo en equipo es que el que revisa el código nunca es el que lo escribió. El que escribió la codificación lee lo que sabe que debe estar allí. En cambio el que no lo hizo, lee lo que realmente está.
Además, es evidente, por los mensajes que recibes al ejecutarlo, que hay código mal escrito. PHP no miente. Si falla por variables sin definir, es que las variables no lo están.
¿No te parece?
Así dicho, sin ver el codigo completo, ¿como quieres que sepamos donde realmente comienza el problema?
Dicho en pocas palabras: Tu ves que el problema es un ELSE, las evidencias muestran que hay otro problema (que peude ser el mismo u otro consecuencia del mismo), pero el dónde se manifiesta el error no implica que el error sea en ese punto. Es donde se hace visible, pero bien podría estar en una parte previa que nosotros no podemos ver.

Creo que deberías confiar en nuestras palabras, y aportar las cosas que se te piden. De lo contrario se hace muy dificil poder asistirte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: variable
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 06:31.