Foros del Web » Programando para Internet » PHP »

Aumentar eficiencia-reutilización a este código

Estas en el tema de Aumentar eficiencia-reutilización a este código en el foro de PHP en Foros del Web. Hola a todos, me gustaría saber como realizar estas mismas operaciones pero siendo más eficiente y reutilizando el código. Pq hay mucho código repetido. Muchas ...
  #1 (permalink)  
Antiguo 22/09/2012, 04:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 3
Aumentar eficiencia-reutilización a este código

Hola a todos, me gustaría saber como realizar estas mismas operaciones pero siendo más eficiente y reutilizando el código. Pq hay mucho código repetido.
Muchas gracias

Código PHP:
$cupcakes[]=array(
                                
'ara' => 0,
                                
'chova' => 0,
                                
'fracho' => 0,
                                
'frachobla' => 0,
                                
'moca' => 0
                            
);
                            
                            
$cupcake=isset($_POST['cups-ara']) ? $_POST['cups-ara'] : NULL;
                            
$cupcake=mres($cupcake);
                            if(
$cupcake>0)
                                
$cupcakes['ara']=$cupcake;
                            
                            
$cupcake=isset($_POST['cups-cho-va']) ? $_POST['cups-cho-va'] : NULL;
                            
$cupcake=mres($cupcake);
                            if(
$cupcake>0)
                                
$cupcakes['chova']=$cupcake;
                            
                            
$cupcake=isset($_POST['cups-fra-cho']) ? $_POST['cups-fra-cho'] : NULL;
                            
$cupcake=mres($cupcake);
                            if(
$cupcake>0)
                                
$cupcakes['fracho']=$cupcake;
                                
                            
$cupcake=isset($_POST['cups-fra-cho-b']) ? $_POST['cups-fra-cho-b'] : NULL;
                            
$cupcake=mres($cupcake);
                            if(
$cupcake>0)
                                
$cupcakes['frachobla']=$cupcake;
                                
                            
$cupcake=isset($_POST['cups-moca']) ? $_POST['cups-moca'] : NULL;
                            
$cupcake=mres($cupcake);
                            if(
$cupcake>0)
                                
$cupcakes['moca']=$cupcake
  #2 (permalink)  
Antiguo 22/09/2012, 05:55
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Aumentar eficiencia-reutilización a este código

probria con un foreach, pero deberas alterar las claves o del metodo post o del array para que funcione:

Código PHP:
Ver original
  1. $cupcakes[]=array(
  2.         'ara' => 0,
  3.         'cho-va' => 0,
  4.         'fra-cho' => 0,
  5.         'fra-cho-b' => 0,
  6.         'cups-moca' => 0
  7.     );
  8.     ForEach ($cupcakes As $I => $V) {      
  9.         $I2 = 'cups-'.$I;
  10.         $cupcake=isset($_POST[$I2]) ? $_POST[$I2] : NULL;
  11.         $cupcake=mres($cupcake);
  12.         if($cupcake>0)
  13.             $cupcakes[$I]=$cupcake;
  14.     }

esperemos a ver si hay otras respuestas. saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 22/09/2012, 06:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Aumentar eficiencia-reutilización a este código

Lo que tengo son 10 selects, uno por cada uno de los 10 productos, pero en un futuro puede que tenga 20-30. En cada uno de los productos, me pueden pedir por diferentes cantidades, en principio de uno a cinco.

Lo que hago es leer cada uno de los campos del producto y comprobar si alguno tiene valor diferente de 0, es decir si hay alguna cantidad pedida. Si es así introduzco la cantidad en el array asociativo, para después generar generar mail y grabarlo en la bbdd.

Muchas gracias
  #4 (permalink)  
Antiguo 22/09/2012, 06:13
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Aumentar eficiencia-reutilización a este código

entonces creo que te andarabien, de ultima tienes que cambiar los id y los name de los input por los del array, pero sacando esa modificacion menor, ese codigo sirve para N cantidad de productos sienso N=cantidadindicesdelarray=cantidadinputconidiguali ndicearray

saludos
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 22/09/2012, 06:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Aumentar eficiencia-reutilización a este código

Te en cuenta que incias $cupcakes[] (al poner los corchetes) como un array. Entoces la salida de foreach deberia ser

if($cupcake>0)
$cupcakes[un_indice][$I]=$cupcake;
  #6 (permalink)  
Antiguo 22/09/2012, 06:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 52
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Aumentar eficiencia-reutilización a este código

Ok, muchas gracias a los dos.
Lo voy a intentar

Etiquetas: aumentar
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 11:31.