• Sábado 4 de Mayo de 2024, 12:07

Autor Tema:  Ayuda Con La Funcion Switch  (Leído 1854 veces)

javier3

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Ayuda Con La Funcion Switch
« en: Miércoles 5 de Enero de 2005, 04:01 »
0
holaaa a todos necesito evaluar de la siguiente manera no se si se puede hacer bueno no me sale por eso les pregunto porfa :
miren es parte del codigo k estoy haciendo

   $id_cuenta=$rs_asiento->Fields("idccodcu");
   switch ($id_cuenta){
      case "40" or "4011" or "401101":
         if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$igv; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$igv; $sccnafec=0; }
      break;
      case "42" or "4211" or "421101":
         if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$subtotal; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$subtotal; $sccnafec=0; }
      break;
      case "60" or "6011" or "601101":
         if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$scrntota; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$scrntota; $sccnafec=0; }
      break;
   }

bueno necesito evaluar esos valores ya k la variable $id_cuenta puede tener cualquiera de esos valores y en ese caso k ejecute esa sentencia, pero cuando lo ejecuto siempre me ejecuta el primer case, ahora todo esto esta dentro de un while k va leendo los registros de una tabla noo asi k $id_cuenta cambia de valor y no mantiene siempre un valor pero creo k no reconoce el or ó el and k puediera utilizar ayudenme porfa urgente gracias
Javier Bermúdez Tito

Informix

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Ayuda Con La Funcion Switch
« Respuesta #1 en: Miércoles 5 de Enero de 2005, 04:33 »
0
Javier3

Los operadores en PHP son los siguientes

AND ---> &&
OR   ---> ||
NOT --->  !

prueba con tu codigo asi:

Código: Text
  1.  
  2. $id_cuenta=$rs_asiento->Fields("idccodcu");
  3. switch ($id_cuenta){
  4. case "40" || "4011" || "401101":
  5. if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$igv; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$igv; $sccnafec=0; }
  6. break;
  7. case "42" || "4211" || "421101":
  8. if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$subtotal; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$subtotal; $sccnafec=0; }
  9. break;
  10. case "60" || "6011" || "601101":
  11. if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$scrntota; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$scrntota; $sccnafec=0; }
  12. break;
  13. }
  14.  
  15.  

Por cierto utiliza los tags de codigo para que se pueda leer mejor

 :kicking:
Informix

"Ganar no es algo momentáneo, es algo permanente. Uno no gana de vez en cuando, uno no hace las cosas bien a veces, uno hace las cosas bien siempre" .

Vince Lombardi


mateamargo

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Ayuda Con La Funcion Switch
« Respuesta #2 en: Jueves 20 de Enero de 2005, 16:17 »
0
Según tengo entendido en Javscript (no sé si lo habrán cambiado en PHP) la instrucción Swtich no se puede usar de la forma en la que vos la llamás
Por ejemplo:

Código: Text
  1.  
  2. switch(numero)
  3. {
  4.  case 1 || 2:
  5.   alert("hola");
  6.  default:
  7.   alert("chau");
  8. }
  9.  
  10.  

esto estaría mal, ya que si querés usar instrucciones para más de una condición lo tenés que hacer así:

Código: Text
  1.  
  2. switch(numero)
  3. {
  4.  case 1:
  5.  case 2:
  6.   alert("hola");
  7.  default:
  8.   alert("chau");
  9. }
  10.  
  11.  

Espero que te sirva.
Saludos.

Atondo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Ayuda Con La Funcion Switch
« Respuesta #3 en: Domingo 23 de Enero de 2005, 01:20 »
0
solo es un Comentario:
case "40" : (aqui, para mayor seguridad separa los : de la instrucción un espacio  no los pongas inmediatamente despues de ella )

:question: :question: :question: :question:
Atd

mateamargo

  • Miembro activo
  • **
  • Mensajes: 67
    • Ver Perfil
Re: Ayuda Con La Funcion Switch
« Respuesta #4 en: Domingo 23 de Enero de 2005, 02:10 »
0
Cita de: "Atondo"
solo es un Comentario:
case "40" : (aqui, para mayor seguridad separa los : de la instrucción un espacio  no los pongas inmediatamente despues de ella )

:question: :question: :question: :question:
 :huh: ¿seguridad de qué?

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Ayuda Con La Funcion Switch
« Respuesta #5 en: Domingo 23 de Enero de 2005, 19:57 »
0
Como mateamargo menciona, en lugar de esto:

Código: Text
  1.  
  2. switch ($id_cuenta) {
  3. case "40" or "4011" or "401101":
  4.  
  5.  

debieras usar:

Código: Text
  1.  
  2. switch ($id_cuenta) {
  3.   case "40":
  4.   case "4011":
  5.   case "401101":
  6.   ....
  7.   break;
  8.   ....
  9. }
  10.  
  11.  

Y procura incluir una opción por defecto (default) :).

Cita de: "Informix"
Los operadores en PHP son los siguientes

AND ---> &&
OR ---> ||
NOT ---> !
PHP si soporta los operadores "texto": and y or :).

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip