Foros del Web » Programando para Internet » PHP »

Problema con lógica...

Estas en el tema de Problema con lógica... en el foro de PHP en Foros del Web. Hola, buenos días, No sé si este post vaya aquí, lo pongo porque estoy programándolo en PHP, pero creo que es más de lógica ( ...
  #1 (permalink)  
Antiguo 26/05/2016, 09:58
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Problema con lógica...

Hola, buenos días,

No sé si este post vaya aquí, lo pongo porque estoy programándolo en PHP, pero creo que es más de lógica ( debería haber una sección de lógica, opino :P ).

Bueno, es lo siguiente y a ver que consejo me pueden ofrecer:

Tengo un serie de revistas almacenadas en una base de datos. Estas revistas se catalogan de acuerdo a su zona de origen, la cual puede ser: Houston, Europa, Madrid, París y México (Europa porque puede incluir revistas de Londres, Alemania, etc., que aún no están catalogadas de forma individual como Madrid y París).

Con esta información yo imprimo las revistas en una tabla, mostrando el título de la revista, el país de origen (el cual no es lo mismo que la zona de origen*), el costo y el idioma.

*la zona de origen vendría siendo como un grupo al que pertenezcan estas revistas.

Sin embargo, al costo se le añaden otras columnas que son "costo en dólares", "costo en euros" y "costo en pesos", funcionando la lógica de esta forma:

1. Si son revistas Europeas o de Madrid o de París, se imprime su costo en pesos y en euros.
2. Si son revistas de Houston, se imprime su costo en pesos y en dólares.
3. Si son revistas de México, se imprime sólo su costo en pesos.

Pero mi duda surge cuando se quieren imprimir las revistas "combinadas" es decir:

Quiero revistas de Europa y de México, o de México y de Houston, o de Houston y de Madrid, o de México y de París, etc., como verán hay muchas combinaciones entonces creo que no sería conveniente poner una decisión con múltiples opciones ya que estas podrían ser muy altas, sobre todo porque a futuro se agregarán tres zonas más que serían Frankfurt, Milán y Londres, quedando en ese entonces: Houston, México, Europa, Madrid, París, Frankfurt, Milán, Londres y Europo.

A lo que voy es: ¿cuál podría ser la instrucción para enviar la impresión de los costos de múltiples revistas sin saber exactamente cuál combinación pueda quedar?

Espero haberme explicado bien.

De antemano, agradezco por sus comentarios, saludos y que sigan teniendo un excelente día.
  #2 (permalink)  
Antiguo 26/05/2016, 13:23
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Problema con lógica...

Ya quedo, de 42 combinaciones posibles lo reduje a 8 con la ayuda de arrays :D

Si alguien quiere ver como quedo al final les comparto el código, no sé si haya sido la mejor opción pero me funcionó muy bien.

Saludos!! ^^
  #3 (permalink)  
Antiguo 29/05/2016, 18:33
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: Problema con lógica...

¿Y no te valdría algo así? Asumimos que la variable $zona_de_origen es la que te vendría de la base de datos.

Código PHP:
Ver original
  1. /* ZONAS POR MONEDAS */
  2. $euros = "Europa|Madrid|Londres|París|Milán|Frankfurt";
  3. $dolares = "Houston";
  4. $pesos = "Mexico";
  5.  
  6. /* ZONA QUE VIENE DE LA BASE DE DATOS */
  7. $zona_de_origen = "Madrid";
  8.  
  9. /* BUSCAR COINCIDENCIAS Y SE IMPRIME LO QUE CORRESPONDA */
  10. if(preg_match('/'.$zona_de_origen .'/',$euros)){
  11.     echo "Se imprime Euros y Pesos";
  12. }else if(preg_match('/'.$zona_de_origen .'/',$dolares)){
  13.     echo "Se imprime Dolares y Pesos";
  14. }else if(preg_match('/'.$zona_de_origen .'/',$pesos)){
  15.     echo "Se imprime Pesos";
  16. }

El resultado de este ejemplo sería: Se imprime Euros y Pesos
__________________
Diseño Web - Arisman Web
  #4 (permalink)  
Antiguo 30/05/2016, 09:51
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Problema con lógica...

No lo había considerado, no tengo muchos conocimientos de las expresiones regulares, por ello no lo pensé, pero voy a poner en práctica eso que me pones aquí, quizá y logro optimizar un poco más mi código.

Te agradezco por tu comentario manuparquegiralda!!

Saludos!!

Etiquetas: tabla
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 03:51.