Foros del Web » Programando para Internet » PHP »

ayuda con variable array

Estas en el tema de ayuda con variable array en el foro de PHP en Foros del Web. buenas tebgo una pequeña aplicacion flas que me manda una variable por GET. obtengo los resultados del formulario y los imprimo. ahora he añadido la ...
  #1 (permalink)  
Antiguo 01/12/2010, 10:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
ayuda con variable array

buenas

tebgo una pequeña aplicacion flas que me manda una variable por GET. obtengo los resultados del formulario y los imprimo.

ahora he añadido la opcion de mandar por GET los productos seleccionados. des del flas tengo una variable item_name* esta variable va añadiendo 1, 2, 3 segun los productos seleccionados. y me pinta por ULR

item_name_1=Product 002&item_name_2=Product 003....

de que manera recibo la variable en el php, es decir, como no se cuantos productos recibire, de que manera pinto la variable para obtener todos los resultados???

saludos!
  #2 (permalink)  
Antiguo 01/12/2010, 10:29
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

Puedes recorrer el array $_GET y comprobar que campos corresponden con el patrón item_name y vas sacando los resultados.
  #3 (permalink)  
Antiguo 01/12/2010, 10:34
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

gracias cluster, el problema es que no se como hacerlo! me pierdo con los arrays!!

me puedes indicar please?
  #4 (permalink)  
Antiguo 01/12/2010, 10:40
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

Así rápidamente.....


Código PHP:
//Por cada campo del array $_GET
foreach($_GET as $campo=>$valor)
{
     
//Si el nombre del campo empieza por item_name
     
if(preg_match('/^item_name/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_name_*
          //Meterlo en un array por ejemplo
          
$array_item_names[$campo]=$valor;
     }

Foreach
Espresiones regulares
  #5 (permalink)  
Antiguo 01/12/2010, 10:47
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

que hace exactamentente el scrip? es por entender el funcionamiento. y si hayu mas variables que se pasan por GET? como distingue esta? pq la estructura es la misma:

item_name1....item_price1....

como distingo las variables??
  #6 (permalink)  
Antiguo 01/12/2010, 10:56
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

El array $_GET se compone de un campo y un valor
Código PHP:
$_GET["item_name_1"]="loquesea"
$_GET["item_name_2"]="loquesea2"
$_GET["item_price_1"]="loquesea3"
$_GET["item_price_2"]="loquesea4" 
Entonces los recorres (foreach) y sacas por un lado el $campo y por otro el $valor.

Con preg_match compruebas si el $campo actual coincide con el patrón '/^item_name/', es decir que empiece por item_name. Si es así podemos recuperar el campo (item_name_1, item_name_2, item_name_3, etc) y su valor. Y hacer lo que necesitemos.

Puedes poner un if debajo para los item_price, otro para otro etc...

Y creas arrays independientes para cada tipo de dato (por poner un ejemplo).

Código PHP:
//Por cada campo del array $_GET
foreach($_GET as $campo=>$valor)
{
     
//Si el nombre del campo empieza por item_name
     
if(preg_match('/^item_name/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_name_*
          //Meterlo en un array por ejemplo
          
$array_item_names[$campo]=$valor;
          
//Vuelve al principio del bucle
          
continue;
     }

     
//Si el nombre del campo empieza por item_price
     
if(preg_match('/^item_price/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_price_*
          //Meterlo en un array por ejemplo
          
$array_item_prices[$campo]=$valor;
          
//Vuelve al principio del bucle
          
continue;
     }

  #7 (permalink)  
Antiguo 01/12/2010, 11:24
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

gracias!!

y entonces, para imprimir la variable? intento hacer:

echo $item_name[];

y no me muestra nada, no seria asi??

saludos!
  #8 (permalink)  
Antiguo 01/12/2010, 11:28
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

la url que recibo es tal que asi:

comanda.php?item_name_1=Product 002&item_price_1=10&item_name_2=Product 005&item_price_2=20

de que forma envio por email los 2 productos del item_name, separados por comas por ejemplo?
  #9 (permalink)  
Antiguo 01/12/2010, 12:19
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

Se puede hacer de muchas formas....

Puedes hacer esto por ejemplo:

Código PHP:
//Por cada campo del array $_GET
foreach($_GET as $campo=>$valor)
{
     
//Si el nombre del campo empieza por item_name
     
if(preg_match('/^item_name/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_name_*
          //Meterlo en un array por ejemplo
          
$array_item_names[$campo]=$valor;
          
//Vuelve al principio del bucle
          
continue;
     }

     
//Para mandar los dos productos del item_name

     //Creamos una cadena con los datos del $array_item_names con separador ","
     
$item_names_separados_por_comas=implode(",",$array_item_names);
     
//Mandamos el mail
     
mail("[email protected]""Asunto: Productos separados por comas"$item_names_separados_por_comas);

Función: Implode
Función: Mail
  #10 (permalink)  
Antiguo 01/12/2010, 12:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

buenas cluster, y muchas gracias por lo que me estas ayudando!!

he copiado tu codigo, y no me llega el email. he hecho un

echo $item_names_separados_por_comas;

y no me muestra nada... que tenemos mal?
  #11 (permalink)  
Antiguo 01/12/2010, 14:10
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

Tienes el servicio smtp arrancado en el equipo dónde estás trabajando?

En lugar de la línea de mail pon

Código PHP:
echo $item_names_separados_por_comas
Te debería mostrar "Product 002,Product 005".
  #12 (permalink)  
Antiguo 01/12/2010, 14:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

ya he probado y nada, es lo que habia hecho y nada

Código PHP:

<?php

//Por cada campo del array $_GET
foreach($_GET as $campo=>$valor)
{
     
//Si el nombre del campo empieza por item_name
     
if(preg_match('/^item_name/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_name_*
          //Meterlo en un array por ejemplo
          
$array_item_names[$campo]=$valor;
          
//Vuelve al principio del bucle
          
continue;
     }

     
//Para mandar los dos productos del item_name

     //Creamos una cadena con los datos del $array_item_names con separador ","
     
$item_names_separados_por_comas=implode(",",$array_item_names);
     
//Mandamos el mail
     //mail("[email protected]", "Asunto: Pedido", $item_names_separados_por_comas);
     
echo $item_names_separados_por_comas;  
    
}  
     
      


?>
  #13 (permalink)  
Antiguo 01/12/2010, 14:57
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: ayuda con variable array

El tener sólo campos que coinciden con el patrón el continue estaba haciendo que al final saliera del bucle y no mostraba el resultado.

El resultado lo mostraremos fuera del foreach.

Prueba:


Código PHP:
//Por cada campo del array $_GET
foreach($_GET as $campo=>$valor)
{
     
//Si el nombre del campo empieza por item_name
     
if(preg_match('/^item_name/',$campo))
     {
          
//Lo que tengas que hacer con el valor de item_name_*
          //Meterlo en un array por ejemplo
          
$array_item_names[$campo]=$valor;
          
//Vuelve al principio del bucle
          
continue;
     }
}
     
//Para mandar los dos productos del item_name

     //Creamos una cadena con los datos del $array_item_names con separador ","
     
$item_names_separados_por_comas=implode(",",$array_item_names);
     
//Mandamos el mail
     //mail("[email protected]", "Asunto: Pedido",    $item_names_separados_por_comas);
     
echo $item_names_separados_por_comas
  #14 (permalink)  
Antiguo 01/12/2010, 15:02
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: ayuda con variable array

ahora siiiiii!!!!

muchisimas gracias cluster!!!!

Etiquetas: variables
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 21:49.