Foros del Web » Programando para Internet » PHP »

porque no funciona un switch con strings

Estas en el tema de porque no funciona un switch con strings en el foro de PHP en Foros del Web. hola amigos espero me puedan ayudar , poruqe no me funciona un switch con strings, para probar que valor tiene accion la estoy imprimiendo, tambien ...
  #1 (permalink)  
Antiguo 18/12/2012, 11:03
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
porque no funciona un switch con strings

hola amigos espero me puedan ayudar , poruqe no me funciona un switch con strings, para probar que valor tiene accion la estoy imprimiendo, tambien pruebo $accion = "Inserto" y funciona bien.

el problema que veo es cuando asigno el valor con $field['Operation'] pero no entiendo porque ya que si hago echo $field['Operation'] imprime bien

Código PHP:
Ver original
  1. $accion = $field['Operation'];
  2.  
  3. switch ($accion){
  4.  
  5.     case "Inserto":
  6.      echo "Inserto";
  7.        break;
  8.  
  9.   case "Actualizo":
  10.       echo "Actualizo";
  11.        break;
  12.  
  13.   case "Elimino":
  14.      echo "Elimino";
  15.         break;
  16.  
  17.   default:
  18.         echo "error";
  19.        break;
  20.  
  21. }  
  22.  
  23. echo $accion;

Última edición por Montes28; 18/12/2012 a las 11:08
  #2 (permalink)  
Antiguo 18/12/2012, 11:18
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: porque no funciona un switch con strings

¿Seguro que imprime bien?

No lo creo, una cosa es lo que tu ves y otra lo que realmente es.

Imprime así para que veas con claridad.
Código PHP:
$accion $field['Operation'];
echo 
"|$accion|"
¿Qué muestra?

¿Seguro que no hay espacios?

¿Coinciden mayúsculas y minúsculas también?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/12/2012, 11:47
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 7 meses
Puntos: 52
Respuesta: porque no funciona un switch con strings

Lo que dice el amigo @pateketrueke podria ser el problema, intenta esto:

Código PHP:
$accion trim($field['Operation']); 
  #4 (permalink)  
Antiguo 18/12/2012, 12:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: porque no funciona un switch con strings

BloodShadow gracias por responder tenias toda la razon ya solucione mi problema

Código PHP:
Ver original
  1. $accion = trim($field['Operation']);
  2.  
  3. switch ($accion){
  4.  
  5.     case "Inserto":
  6.      echo "Inserto";
  7.        break;
  8.  
  9.   case "Actualizo":
  10.       echo "Actualizo";
  11.        break;
  12.  
  13.   case "Elimino":
  14.      echo "Elimino";
  15.         break;
  16.  
  17.   default:
  18.         echo "error";
  19.        break;
  20.  
  21. }
  #5 (permalink)  
Antiguo 18/12/2012, 12:14
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 7 meses
Puntos: 52
Respuesta: porque no funciona un switch con strings

Ahora solo te falta investigar a fondo que hace la funcion trim y ver como aplicarla en todas las partes donde trabajes con strings dinamicos :)

Suerte y que me alegro que solventaras tu problema jeje
  #6 (permalink)  
Antiguo 18/12/2012, 12:20
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: porque no funciona un switch con strings

Yo pienso que el problema no está solucionado, finalmente me pongo a pensar, ¿que hace ese espacio en la base de datos?

Desde ahí nace el problema, si la "solución" consiste en usar trim() siempre que se presente el mismo problema entonces vaya lío.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 18/12/2012, 12:29
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 7 meses
Puntos: 52
Respuesta: porque no funciona un switch con strings

En realidad es un string amigo @pateketrueke asi q puede llevar lo que quiera pienso yo :)... quien sabe si es un dato que ingreso de un formulario en un textarea, ese texto puede ser libre albeldrio si no se valida bien. Pero al amigo le funciono, esperemos cuando vuelva con otra consulta que lo hackearon o algo xD
  #8 (permalink)  
Antiguo 18/12/2012, 12:33
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: porque no funciona un switch con strings

Entiendo perfectamente esa parte, pero si el objetivo del valor siempre va a ser el mismo, es decir, usar dicho valor como parámetro de acción debería ser normalizado.

Si fuera otro tipo de valor únicamente para representar pensaría de otro modo, pero es funcional y repercute en la lógica.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 19/12/2012, 07:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: porque no funciona un switch con strings

amigos cambie el tipo de dato en la base de datos , lo cambie de un character(45) a un character varying(10) y ya no tengo que utilizar trim.
  #10 (permalink)  
Antiguo 19/12/2012, 07:14
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: porque no funciona un switch con strings

Cita:
Iniciado por Montes28 Ver Mensaje
amigos cambie el tipo de dato en la base de datos , lo cambie de un character(45) a un character varying(10) y ya no tengo que utilizar trim.
Quizás nunca se dé el caso, pero yo no haría que las comprovaciones del switch sean "case sensitive". Es el típico fallo que te puedes tirar horas hasta encontrar que han puesto "ELimino" en lugar de "Elimino".
__________________
Aviso: No se resuelven dudas por MP!
  #11 (permalink)  
Antiguo 19/12/2012, 07:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 2 meses
Puntos: 6
Respuesta: porque no funciona un switch con strings

Malenko gracias por responder

Elimino siempre va a llegar ya que es un trigger de la base de datos el que lo genera

Etiquetas: strings, switch
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 09:21.