Programación Web y Scripting > PHP

 Ayuda Con La Funcion Switch

(1/2) > >>

javier3:
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

Informix:
Javier3

Los operadores en PHP son los siguientes

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

prueba con tu codigo asi:


--- Código: Text --- $id_cuenta=$rs_asiento->Fields("idccodcu");switch ($id_cuenta){case "40" || "4011" || "401101":if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$igv; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$igv; $sccnafec=0; }break;case "42" || "4211" || "421101":if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$subtotal; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$subtotal; $sccnafec=0; }break;case "60" || "6011" || "601101":if ($rs_asiento->Fields("scccdebe")=="x"){ $sccncarg=$scrntota; $sccnabon=0; $sccnafec=1;}else{ $sccncarg=0; $sccnabon=$scrntota; $sccnafec=0; }break;}  
Por cierto utiliza los tags de codigo para que se pueda leer mejor

 :kicking:

mateamargo:
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 --- switch(numero){ case 1 || 2:  alert("hola"); default:  alert("chau");}  
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 --- switch(numero){ case 1: case 2:  alert("hola"); default:  alert("chau");}  
Espero que te sirva.
Saludos.

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:

mateamargo:

--- 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:
--- Fin de la cita ---
 :huh: ¿seguridad de qué?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa