Bonjour, je souhaite insérer les données contenues dans la colonne "datas" de la table "orders" d'une BDD dans un mail envoyé avec la fonction mail().
Pour cela j'utilise une boucle for qui fonctionne mais qui affiche uniquement une seule série de donnée dans le mail, les autres données ne s'affichant pas.
Les données en questions sont les détails d'une commande (id produit, nom produit, prix ...) et seules les données correspondant à la première commande apparaissent.
Par contre quand je teste la boucle sur la page php toutes les données s'affichent.
Comment puis-je faire pour que toutes les données soient prises en compte ?

Merci pour vos suggestions.

Voici le code :

$order= $DB->query('SELECT * FROM orders WHERE id=:id',array('id'=>$_GET['order']));
$donnees = (array)(unserialize($order->datas));
// envoi du mail
for($i=1;$i<=$donnees['num_cart_items'];$i++){
        
          $id_produits=$donnees['item_number'.$i] ;
          $nom_produits=$donnees['item_name'.$i] ;
          $qte_produits=$donnees['quantity'.$i] ;
          $prix_produits=$donnees['mc_gross_'.$i] ;
}
$site = "*******";
$from = "*******";
$nom = "********";
$to = $user->email;;
$sujet = utf8_decode("************");
$text = "**********";
$html = '

                N&deg; de produit : '.$id_produits.'<br>
                Nom du produit :  '.$nom_produits.'<br>
                Quantité :  '.$qte_produits.'<br>
                Prix unitaire :  '.$prix_produits .'<br>
';

reste du code ...
Modifié par edasong (28 Mar 2014 - 15:29)
Salut,

Alors ton code est "faux".

En gros :

for($i=1;$i<=$donnees['num_cart_items'];$i++){
        
          $id_produits=$donnees['item_number'.$i] ;
          $nom_produits=$donnees['item_name'.$i] ;
          $qte_produits=$donnees['quantity'.$i] ;
          $prix_produits=$donnees['mc_gross_'.$i] ;
}


Tes variables : id_produits, nom_produits, qte_produits & prix_produits

Ne conservent que la dernière valeur de ton for.

Je pense qu'il faut que tu concatènes ou alors que tu créer un autre tableau.