IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoyer resultat requete SQL par mail en PHP [PHP 7]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut Envoyer resultat requete SQL par mail en PHP
    Bonjour,

    à ce jour j'arrive a envoyé un mail, j'arrive a faire de requête sql les afficher faire des conditions avec MAIS comment est ce que je peux envoyer le résultat d'une requête sql par email?
    j'ai compris le principe il faut stocker la requête dans une variable puis on envoie MAIS encore une fois je n'ai pas du tout la syntaxe et je ne trouve pas de la documentation RECENTE.
    Tout ce que je trouve date de 2010
    donc si quelqu'un peut m'orienter vers une documentation récente ou m'envoyer un exemple de code.
    je vous aime.
    merci.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    pour envoyer un e-mail basique, il y a cette fonction php
    https://www.php.net/manual/fr/function.mail.php
    et pour envoyer un e-mail plus complexe (en html, images, pièces-jointes) il y a cette bibliothèque :
    https://github.com/PHPMailer/PHPMailer

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut
    oui je connais les deux mais ma question comment envoyé un mail après une requête sql (qui sera stocké dans un fichier text )
    Du style selecte * from table1 -> send mail

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Quelque chose comme ça ?

    Je ne comprends pas ce que vous voulez dire par "qui sera stocké dans un fichier text".

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    $req = "SELECT * FROM table";
    $sth = $db->prepare($req);
    $sth->execute();
    $results = $sth->fetchAll(PDO::FETCH_OBJ);
    $to = "youremail@domain.tld";
    $subject = "Résultats de la requête";
    $message = [
        'Requête : ' . $req,
        'Résultats : ',
        print_r($results, true),
    ];
    mail($to, $subject, implode(PHP_EOL, $message));

    Explications : j'ai pour habitude de mettre mes messages dans un tableau, de cette façon, chaque colonne correspond à une ligne. J'utilise alors la fonction implode() pour tout mettre sur une ligne et j'utlise PHP_EOL comme glue afin de créer des retours à la ligne à chaque fois

    Vu qu'on ne met pas de header HTML, le mail est en mode TEXT et donc de simples retour à la ligne suffisent pour le mettre en forme

    PS : Le second attribut de print_r() permet de faire un return de la réponse plutôt qu'un echo() ;-)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut
    merci je vais tester ca

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 13
    Par défaut
    Le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
     
     try 
     {
         // connexion bdd + catch erreur
         $bdd = new PDO('mysql:host=localhost;dbname=utilisateur;charset=utf8', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
     }
     catch(PDOException $e)
     {
         die('Erreur : '.$e->getMessage());
     }
     
    $req = "SELECT * FROM uti";
    $sth = $bdd->prepare($req);
    $sth->execute();
    $results = $sth->fetchAll(PDO::FETCH_OBJ);
    $to = "monmail@gmail.com";
    $subject = "Résultats de la requête";
    $message = [
        'Requête : ' . $req,
        'Résultats : ',
        print_r($results, true),
    ];
    mail($to, $subject, implode(PHP_EOL, $message));

    Citation Envoyé par L'erreur
    Warning: mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp64\www\test\eamillll.php on line 24
    c'est normal que j'ai cette erreur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer un fichier txt par mail avec agent SQL
    Par vponcet0774 dans le forum Développement
    Réponses: 4
    Dernier message: 06/03/2012, 18h17
  2. [Web Service] Envoyer formulaire de contact par mail via php
    Par ginger4957 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/06/2009, 15h53
  3. Réponses: 1
    Dernier message: 26/03/2009, 19h43
  4. Réponses: 8
    Dernier message: 25/07/2006, 22h49
  5. Réponses: 1
    Dernier message: 25/07/2006, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo