Foros del Web » Programando para Internet » PHP »

Inexplicable fallo en switch

Estas en el tema de Inexplicable fallo en switch en el foro de PHP en Foros del Web. Hola a todos, os expongo: if ($con->query($sql) === TRUE) { echo "<DIV CLASS='error'>USUARIO CREADO CORRECTAMENTE</DIV>"; switch( $_GET ) { case isset($_GET['ventas']): echo "<meta http-equiv=refresh content=2;URL='/inmo/mod/altas/new_ventas.php' ...
  #1 (permalink)  
Antiguo 18/12/2015, 16:01
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 17 años
Puntos: 2
Inexplicable fallo en switch

Hola a todos, os expongo:

if ($con->query($sql) === TRUE)
{
echo "<DIV CLASS='error'>USUARIO CREADO CORRECTAMENTE</DIV>";


switch( $_GET )
{
case isset($_GET['ventas']):
echo "<meta http-equiv=refresh content=2;URL='/inmo/mod/altas/new_ventas.php' >";
break;

Hay mas cases con otras variables GET, el caso es que sin tocar nada y con la URL plana sin ?ventas=1 por ejemplo me entra en el case y me redirecciona y eso que lo unico que hago es dar de alta a un usuario clickando un boton de un formulario que encima es POST por lo que no entiendo nada!! si pongo comentarios al get['ventas'] entra en el siguiente case y asi sucesivamente :S
  #2 (permalink)  
Antiguo 18/12/2015, 16:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Inexplicable fallo en switch

¿Al menos entiendes cómo funciona switch/case o sólo lo haces porque sí?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/12/2015, 18:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 17 años
Puntos: 2
Respuesta: Inexplicable fallo en switch

Hombre yo imagino que lo haras por meterte la vacilada de que sabes mucho, pero si pregunto en el foro es porque intento hacer cosas que despues no me salen y por eso las pregunto.

Con un Get no se muy bien como se pone la sintaxis en un switch. He probado tambien poniendolo asi pero no me funciona:

Código PHP:
switch( $_GET )
                    {
                        case 
'ventas':
                            echo 
"<meta http-equiv=refresh content=2;URL='/inmo/mod/altas/new_ventas.php' >";
                            break; 
  #4 (permalink)  
Antiguo 19/12/2015, 11:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Inexplicable fallo en switch

No te estoy vacilando, sólo pregunto porque me preocupa que no hayas dedicado ni 5 minutos leyendo el manual de switch.

Básicamente es una abstracción para if-then-else:
Código PHP:
Ver original
  1. if ($x == 'a') { x; }
  2. if ($x == 'b') { y; }
  3. if ($x == 'c') { z; }

Como puedes leer se compara 3 veces sobre la misma variable, o mejor dicho sobre el mismo valor que contiene $x para entonces ejecutar un bloque de código u otro.

El switch() es prácticamente un equivalente:
Código PHP:
Ver original
  1. switch($x) {
  2.   case 'a': x; break;
  3.   case 'b': y; break;
  4.   case 'c': z; break;
  5. }

¿Se entiende?

Ahora, en tu caso, deberías comparar sobre un índice concreto de $_GET['algun_nombre'] en lugar de $_GET porque $_GET es un array y no tiene sentido compararlo contra una cadena de texto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: fallo, formulario, sql, switch, 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 22:42.