Foros del Web » Programando para Internet » PHP »

Enviar Pedido Carrito en PHP por Mail (contenido del Array)

Estas en el tema de Enviar Pedido Carrito en PHP por Mail (contenido del Array) en el foro de PHP en Foros del Web. Mi problema es el siguiente, tengo un carro de compras todo funciona perfecto, excepto la parte final donde se debe enviara un email a la ...
  #1 (permalink)  
Antiguo 10/03/2010, 22:33
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Enviar Pedido Carrito en PHP por Mail (contenido del Array)

Mi problema es el siguiente, tengo un carro de compras todo funciona perfecto, excepto la parte final donde se debe enviara un email a la persona con los detalles de su compra y uno a mi para saber de la compra.

Código PHP:
$pedido = array("carro");
sort($pedido);
foreach (
$carro as $key => $val) {
//echo $val['nombre'] . $val['precio'] . "<br>";
$nombre $val['nombre'];
$precio $val['precio'];
$descripcion $val['descripcion'];
$cantidad $val['cantidad'];
$codigo_producto $val['codigo_producto'];
$codigo_provedor $val['codigo_provedor'];
$provedor $val['provedor'];
$presentacion $val['presentacion'];
}
// esto por ejemplo //

echo "$nombre<br>";

//me muestra en pantalla los nombres de los productos sean 2 , 4 o 50  


//pero a la hora de querer enviar el contenido de esa variable por emial asi:

$sfrom="[email protected]"//cuenta que envia
$sdestinatario="[email protected]"//cuenta destino
$ssubject="DETALLES DE SU PEDIDO"//subject
$shtml=


$nombre ( solo me recoje en ultimo registro , aunque hayan 10)

La pregunta es como hago para enviar aqui, todos los datos del array $pedido = array("
carro");

y sus respectivos valores 






"
//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?> 

mi pregunta especifica como hago para que la variable $nombre me muestre todos los registris como lo hace en el navegador pero que sean enviados por email.
  #2 (permalink)  
Antiguo 10/03/2010, 23:59
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Enviar Pedido Carrito en PHP por Mail (contenido del Array)

concatenando ....

$nombre. = $val['nombre']."<br>".$val['precio']."<br> ETC ETC ETC

Dentro del recorrido del foreach
  #3 (permalink)  
Antiguo 11/03/2010, 00:26
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Enviar Pedido Carrito en PHP por Mail (contenido del Array)

Cita:
Iniciado por HiToGoRoShi Ver Mensaje
concatenando ....

$nombre. = $val['nombre']."<br>".$val['precio']."<br> ETC ETC ETC

Dentro del recorrido del foreach
Código PHP:
$pedido = array("carro");
sort($pedido);
foreach (
$carro as $key => $val) {
//echo $val['nombre'] . $val['precio'] . "<br>";
//$nombre = $val['nombre'];
$precio $val['precio'];
$descripcion $val['descripcion'];
$cantidad $val['cantidad'];
$codigo_producto $val['codigo_producto'];
$codigo_provedor $val['codigo_provedor'];
$provedor $val['provedor'];
$presentacion $val['presentacion'];




  
$nombre $val['cantidad'].'<br>'.$val['nombre'].'<br>'.$val['descripcion'].'<br>'.$val['descripcion'].'<br>'.$val['precio'];
 
}



echo
"$nombre"

Esto me muestra igual que antes solo el ultimo valor amigo.
cual es el problema
  #4 (permalink)  
Antiguo 11/03/2010, 00:54
Avatar de duskrow  
Fecha de Ingreso: abril-2008
Mensajes: 267
Antigüedad: 16 años
Puntos: 8
Respuesta: Enviar Pedido Carrito en PHP por Mail (contenido del Array)

te falto concatenar $nombre

ponlo asi



Código PHP:
Ver original
  1. $nombre .= $val['cantidad'].'<br>'.$val['nombre'].'<br>'.$val['descripcion'].'<br>'.$val['descripcion'].'<br>'.$val['precio'];


saludos , visita http://www.miguelomeli.tk/
  #5 (permalink)  
Antiguo 11/03/2010, 01:12
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Enviar Pedido Carrito en PHP por Mail (contenido del Array)

Cita:
Iniciado por duskrow Ver Mensaje
te falto concatenar $nombre

ponlo asi



Código PHP:
Ver original
  1. $nombre .= $val['cantidad'].'<br>'.$val['nombre'].'<br>'.$val['descripcion'].'<br>'.$val['descripcion'].'<br>'.$val['precio'];


saludos , visita http://www.miguelomeli.tk/
Gracias amigo ya me funciono ahora debo ordenar y poner titulos para mostrarlo mejor




otra pregunta amigo

como hago esto:

si quiero que me muestre productos que tienen determindo codigo de provedor ?

como es la forma correcta de hacerlo.
  #6 (permalink)  
Antiguo 11/03/2010, 12:50
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
¿ Se puede usar foreach para obtener ciertos datos solamente ?

MI consulta es la siguiente, si se puede usar foreach para hacer una busqueda dentro del array pero discriminativamente, me explico;

tengo
Código PHP:
Array
(
    [
a9b7ba70783b617e9998dc4dd82eb3c5] => Array
        (
            [
identificador] => a9b7ba70783b617e9998dc4dd82eb3c5
            
[simbolo] => ¢
            
[cantidad] => 3
            
[categoria] => granos
            
[clase] => Arroz
            
[presentacion] => Bolsa de  Kilos
            
[descripcion] => Arroz Blanco suelto
            
[codigo_provedor] => 01
            
[provedor] => cadena
            
[codigo_producto] => 1234578
            
[nombre] => Arroz 
            
[precio] => 900
            
[id] => 1000
        
)


Como le digo que me muestre unicamente los datos de los prodcutos que tiene como codgio de provedor el numero 01 o el nombre cadena, o sea una condicion ?

Gracias de antemano.
  #7 (permalink)  
Antiguo 11/03/2010, 12:52
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

creo que array_filter es lo que buscas.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 11/03/2010, 13:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Puedes declarar dentro del foreach una condición que te muestre solamente la llave que deseas ver. Por ejemplo, en el caso tuyo tienes un array dentro de otro. Para buscar sería algo así
Código PHP:
Ver original
  1. foreach($array as $v){
  2.     foreach($v as $k => $vv){
  3.         if($k == "codigo_provedor"){
  4.             echo $vv;
  5.         }
  6.     }
  7. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 11/03/2010, 14:29
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Cita:
Iniciado por abimaelrc Ver Mensaje
Puedes declarar dentro del foreach una condición que te muestre solamente la llave que deseas ver. Por ejemplo, en el caso tuyo tienes un array dentro de otro. Para buscar sería algo así
Código PHP:
Ver original
  1. foreach($array as $v){
  2.     foreach($v as $k => $vv){
  3.         if($k == "codigo_provedor"){
  4.             echo $vv;
  5.         }
  6.     }
  7. }
Muchas Gracias abimaelrc por ahi anda la cosa, con este codigo que me diste me muestra solo los codigos de los provedores pero lo que necesito es que me discrimine o sea darle yo el parametro :

codigo_provedor = '01'

que me dec omo resutado

producto tal codigo_provedor 01
producto tal5 codigo_provedor 01
producto tal3 codigo_provedor 01

y si le digo codigo_provedor = '02'

producto tal5 codigo_provedor 02
producto tal2 codigo_provedor 01
  #10 (permalink)  
Antiguo 11/03/2010, 14:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Lo que necesitas es declarar otra condicion de la condición que te indique o indicar dentro de la misma condición que es lo que quieres ver.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 11/03/2010, 15:12
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Cita:
Iniciado por abimaelrc Ver Mensaje
Lo que necesitas es declarar otra condicion de la condición que te indique o indicar dentro de la misma condición que es lo que quieres ver.
Código PHP:
foreach($carro as $v){
    foreach(
$v as $k => $vv){
        if(
$k == "provedor" and "provedor" == "cadena"){
            echo 
$vv;
        }
    }

asi no me funciona si me pueden dar un ejmplo

lo que quiero es que me mustre:

toda la info de los prodcutos que "provedor" == "cadena"


cual es la manera correcta de poner mas condiciones y de recoger los demas datos : nombre, cantidad, precio etc.


Muchas Gracias por tu ayuda.
  #12 (permalink)  
Antiguo 11/03/2010, 15:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?


Código PHP:
$buscar "cadena";
foreach (
$carro as $v) {
     if (
$v['proveedor'] == $cadena) {
          
var_dump($v);
     }

Saludos.
  #13 (permalink)  
Antiguo 11/03/2010, 15:37
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Cita:
Iniciado por GatorV Ver Mensaje

Código PHP:
$buscar "cadena";
foreach (
$carro as $v) {
     if (
$v['proveedor'] == $cadena) {
          
var_dump($v);
     }

Saludos.
Muchisimas Gracias GatorV me funciona bien en pantalla me muestra los datos discrimindados por los parametros que le de.

aqui me imagino que fue solo un error if ($v['proveedor'] == $cadena) es $buscar no $cadena, pero bueno tengo otra busqueda y la hago asi:


Código PHP:
$pedido = array("carro");
sort($pedido);
foreach (
$carro as $key => $val) {


$z_nombre .= $val['cantidad'].'&nbsp;'.$val['nombre'].'&nbsp;'.$val['descripcion'].'&nbsp;'.$val['simbolo'].'&nbsp;'.$val['precio'].'<br>'
de esta manera puedo enviar por emal facilmemte $z_nombre



pero al intentar hacer mismo con :



$buscar = "cadena";
foreach ($carro as $v) {
if ($v['proveedor'] == $buscar) {
$info_provedor .= $val['cantidad'].'&nbsp;'.$val['nombre'].'&nbsp;'.$val['descripcion'].'&nbsp;'.$val['simbolo'].'&nbsp;'.$val['precio'].'<br>';
}
}


no me muestra nada .


Muchas Gracias por tu tiempo .
  #14 (permalink)  
Antiguo 11/03/2010, 15:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

En lugar de $val es $v, o cambia $val en el foreach.

PD si fue un error usar $buscar.

Saludos.
  #15 (permalink)  
Antiguo 11/03/2010, 15:56
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Cita:
Iniciado por GatorV Ver Mensaje
En lugar de $val es $v, o cambia $val en el foreach.

PD si fue un error usar $buscar.

Saludos.
que detalle GatorV $val $v , Gracias infinitas .

si quisiera guardar la info de esas consultas en una base de datos

$con = mysql_connect("localhost","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("pedidos", $con);

mysql_query("INSERT INTO pedido (producto, cantidad, etc)

VALUES ('$v['nombre']','$v['cantidad']','$etc') ");

de esa manera probe y me guarda solo el utlimo registro, como seria la forma de gurdar todos , ejemplo que si hay 10

me guarde cada uno en las respectivas filas en la base de datos y cada campo donde corresponde.

Muchas gracias de nuevo por tu tiempo.
  #16 (permalink)  
Antiguo 11/03/2010, 15:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Tienes que colocar dentro del foreach el query.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #17 (permalink)  
Antiguo 11/03/2010, 18:32
Avatar de jival  
Fecha de Ingreso: noviembre-2007
Mensajes: 173
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: ¿ Se puede usar foreach para obtener ciertos datos solamente ?

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes que colocar dentro del foreach el query.
Muchas Grcias abimaelrc eso es justo lo que tenia que hacer.
  #18 (permalink)  
Antiguo 11/03/2010, 23:22
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Enviar Pedido Carrito en PHP por Mail (contenido del Array)

con inner join... deben tener id en comun

Etiquetas: carrito, contenido, enviar, mail, pedido
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 07:43.