Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/01/2016, 18:07
shawn1986
 
Fecha de Ingreso: julio-2009
Mensajes: 63
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Peoblema con if anidado (no se cumplen condiciones)

Cita:
Iniciado por vb2005 Ver Mensaje
Unas reglas de oro:
  • Nombres descriptivos en variables y argumentos, porque ar1, ar2 no dicen nada
  • Evitar sobrecarga de responsabilidades en los métodos o funciones
  • Evitar if anidados porque esto denota una sobrecarga de responsabilidades
hay muchas más pero estas son las que si o si debes cumplir para tener un código entendible.
Ok lo de ar1 ar2 (significa accesorios y refacciones y el numero de campo).

Ahora bien, para no sobrecargar las condiciones, ¿Cuál sería el método ideal para hacer lo que necesito?

Primero evaluar si la variable $categoria es == categoria1 o igual a categoria 2 o igual a categoria 3 (categorias que estan en una misma rama digamos)
si la condicion es correcta, evaluar si todos los campos estan llenos, si todo es correcto ejecutar la rutina para insertar en bd .

Luego si la primera condicion no se cumplio verificar si la variable $categoria es == a categoria4 o categoria5 o categoria6, si se cumple la condicion seguirnos a la sigiuente condicion y verificamos que todos los campos esten llenos, si es true entonces insertar en bd, si es false entonces, entonces seguirnos con el siguiente grupo de categorias.

si $categoria==categoria7 o categoria8 o categoria8, seguimos con la validacion de sus respectivos campos, si todo ok, entonces insertamos en bd, si no se cumplen seguimos validando y al final si nada se cumple mostramos el error generico.

Y asi sucesivamente con tantos grupos de categorias sea necesario, es decir, validar que la categoria sea igual a las que tengo definidas, y despues validar sus campos llenos, si todo ok, entonces insertamos, de lo contrario mostramos error. Pero la idea es que como cada categoria tiene campos disntintos por eso mi idea de validar por categoria y por campos.

Algo asi: (las categorias siempre se cumplen porque vienen por un select, aun asi las comprobamos para evitar problemas)

(primer grupo de condiciones)
condicion categoria - (si se cumple seguimos) (si no se cumple mostramos error)
condicion campos llenos - (si se cumple seguimos) (si no se cumple mostramos error)
resultado - (En este punto se cumplieron las dos primeras entonces insertamos en base de datos)
-------------------------------------------------------------------------------------------------------
(segundo grupo de condiciones)--si en el primer grupo la condicion categoria no se cumplio
comparamos categoria con el segundo grupo de categorias -(si se cumple seguimos) (si no se cumple mostramos error)
condicion campos llenos - (si se cumple seguimos) (si no se cumple mostramos error)
resultado - (En este punto se cumplieron las dos primeras del segundo grupo entonces insertamos en base de datos)

... Y asi sucesivamente.

Algun consejo o sugerencia para lograrlo.

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Prueba cambiar !="" por isset.
Seguí tu consejo y me funciona bien, aunque los campos select como la primera seleccion la tengo con valor 0 en esos campos aun sigo haciendo la comparacion !=, sin embargo sigo sin lograr desarrollar un codigo de condiciones que me funcione bien.

Cualquier sugerencia, sigo abierto a comentarios...

De antemano gracias!!