Email via une table

NoYha
Invité n'ayant pas de compte PHPfrance

02 août 2018, 17:11

Bonjour à tous je viens demander votre aide !

J'aimerais envoyé un mail à un utilisateur enregistré sur mon site( qui est en local pour le moment). Cependant, j'aimerais que l'émail soit récupérer dans une de mes tables, je vais expliquer l'enjeu.

Sur mon site une fois que vous souhaitez payer la commande vous êtes redirigé sur paypal. Vous vous connectez et une fois le payement validé depuis paypal, j'ai fait en sorte qu'on soit redirigé sur une page classique nommé success.php qui affiche le message "Merci d'avoir passé la commande..".

Du coup j'ai ajouté sur cette page success.php ceci :

Code : Tout sélectionner

<?php require_once('includes/header.php'); //require_once('includes/sidebar.php'); echo '<br/><h2 style="color:green;">Merci d\'avoir commandé chez nous.</h2>'; //require_once('includes/footer.php'); $sujet = 'Votre commande'; $message = "Bonjour, Ceci est un message texte envoyé grâce à php. merci :)"; // Récupération email client. $queryEmailUser= $db->prepare("SELECT email FROM users WHERE id = :id"); $queryEmailUser->bindValue(':id', $_POST['user_id'], PDO::PARAM_INT); $queryEmailUser->execute(); $emailUser = $queryEmailUser->fetch(); // On stocke l'adresse email du client dans une variable pour ensuite la passer à la fonction mail. $destinataire = $emailUser['email']; $headers = "From: <moi@domaine.com>\n"; $headers .= "Reply-To: moi@domaine.com\n"; $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\""; if(mail($destinataire,$sujet,$message,$headers)) { echo "Un email récapitulant votre commande a été envoyé."; } else { echo "Une erreur c'est produite lors de l'envois de l'email."; } ?>
Cependant à la place de mettre un email fixe à $destinataire j'aimerais aller prendre dans ma table phpmyadmin l'émail des personnes ayant acheter un article. donc je pense qu'il faut sélectionner email dans users et l'associer à transactions_id de la table transactions non ?

Comment devrais je faire d'après vous ?

voici les tables qui serait concerné : Image

la table transactions : Image

et la table users : Image

Mammouth du PHP | 816 Messages

12 août 2018, 23:07

Quelle est cette forme d'écriture d'une variable avec deux points
( $queryEmailUser= $db->prepare("SELECT email FROM users WHERE id = :id"); )  ?
Je ne connais pas ou est-ce là l'erreur ?

J'y mettrais plutôt:
$queryEmailUser= $db->prepare("SELECT email FROM users WHERE id = ".$_GET["id"]);
//ou
$queryEmailUser= $db->prepare("SELECT email FROM users WHERE id = ".$id);
//ou
$queryEmailUser= $db->prepare("SELECT email FROM users WHERE id = ".$NomDeLaVariableContenuLeIDcherché);
Bref, je sortirais la variable des guillemets.
Quoi qu'il en soit, vérifies-tu le résultat obtenu par ta requête MySQL?
Si oui, est-ce que le résultat obtenu correspond à celui souhaité ?
Tu trouveras vraisemblablement dans le résultat complet obtenu l'information que tu cherches, soigne la forme et tu y arriveras.
Soyez artisans de paix

Mammouth du PHP | 917 Messages

12 août 2018, 23:18

Quelle est cette forme d'écriture d'une variable avec deux points
c'est tout à fait correct, voir http://php.net/manual/fr/pdo.prepare.php