[resolu]Envoyer résultat requete par mail

Eléphanteau du PHP | 23 Messages

16 mars 2011, 14:19

Bonjour,

J'ai une page php qui me renvoi mon resultat de requete dans un tableau.

Jusque la ca fonctionne bien.

Mais je voudrais également que ce tableau puisse etre envoyé directement par mail.

Est ce possible ?

Mon code actuel est :

Code : Tout sélectionner

<html lang="fr"><head><meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"></head> <body> <basefont face="Tahoma" size="2"> <br> <center><h2><span style="color: rgb(92, 168, 10);"><i>Pages visitées<br>Jour Courant</i></span></h2></center> <center><table width="300" border="1" cellspacing="0" cellpadding="0"> <tr> <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Nom de la page</div><span></font></td> <td width="5"><font face="tahoma" size="2"><span style="color: rgb(92, 168, 10);"><div align="center">Visites</div><span></font></td> </tr> <?php //Connection Mysql mysql_connect("*","intervaljoomla","*")or die("Problème avec la base de données"); mysql_select_db("*")or die ("pas de connection"); $reponse = mysql_query("SELECT jom15_jstats_pages.page_title, COUNT(*) FROM jom15_jstats_impressions INNER JOIN jom15_jstats_visits ON jom15_jstats_visits.visit_id = jom15_jstats_impressions.visit_id INNER JOIN jom15_jstats_pages ON jom15_jstats_impressions.page_id = jom15_jstats_pages.page_id WHERE jom15_jstats_visits.visit_date = CURDATE() GROUP BY jom15_jstats_pages.page_id ORDER BY COUNT(*) DESC"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : //*********************************************************************************************************************** if ($reponse) { //************************************************************************************************************************* while ($donnees = mysql_fetch_array($reponse)) { ?> <tr> <td><center><font face="tahoma" size="2"><?php echo $donnees['0']; ?></font></center></td> <td><center><font face="tahoma" size="2"><?php echo $donnees['1']; ?></font></center></td> </tr> <?php //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail //Placement du mail } //mysql_close(); // Déconnexion de MySQL //**************************************************************************************************** } else { echo 'Pas de champs!!!'; } //**************************************************************************************************** ?> </table></center> <br><br> </body></html>

J'ai essayé de rajouter le mail de cette manière :

Code : Tout sélectionner

//Envoi mail $headers ='From: "bidule"<[email protected]>'."\n"; $headers .='Reply-To: '."\n"; $headers .='Cc: [email protected]']}"."\n"; $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; $headers .='Content-Transfer-Encoding: 8bit'; $message = "$reponse"; mail('[email protected]', 'Requete', "$message", $headers))

Que j'ai placé juste après le while, après les <tr></tr> mais avant la fermeture }.

Le mail part mais contenant une erreur ressource #2.

Pouvez vous m'aider svp ?

Amicalement
Modifié en dernier par steph70 le 16 mars 2011, 16:27, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 mars 2011, 15:41

salut,

$reponse est une ressource mysql est non un texte il te faut mettre en contenu ce que tu a affiché avant (le plus simple c'est de tout mettre dans une variable dans le while et de l'utiliser pour le mail et l'affichage).

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 23 Messages

16 mars 2011, 16:26

La réponse, du moins la partie sql :

Code : Tout sélectionner

<?php //recupere date du jour $date = date ("Ymd"); //Connection Mysql mysql_connect("*","*","*")or die("Problème avec la base de données"); mysql_select_db("*")or die ("pas de connection"); $reponse = mysql_query("SELECT COUNT(*) FROM `jom15_jstats_visits` WHERE `visit_date` = '$date'"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : //*********************************************************************************************************************** if ($date) { //************************************************************************************************************************* while ($donnees = mysql_fetch_array($reponse)) { //Envoi mail $to = '[email protected]' ; $subject = 'Nombre de visites' ; $body = '<HTML>' ; $body = $body . '<HEAD>' ; $body = $body . '</HEAD>' ; $body = $body . '<BODY>' ; $body = $body . '<p>'; $body = $body . 'Nombre de visites du '; $body = $body . $date; $body = $body . '</p>'; $body = $body . '<div width="300">' ; $body = $body . '<table border="1" cellspacing="3" cellpadding="3">' ; $body = $body . '<tr>' ; $body = $body . '<td>' ; $body = $body . $donnees [0]; $body = $body . '</td>' ; $body = $body . '<tr>' ; $body = $body . '</table>' ; $body = $body . '</div>' ; $body = $body . '</BODY>' ; $body = $body . '</HTML>' ; $headers = "MIME-Version: 1.0\r\n" . "Content-type: text/html; charset=iso-8859-1\r\n" . "From: siteInterval.coop" ; mail($to, $subject, $body , $headers); } //mysql_close(); // Déconnexion de MySQL //**************************************************************************************************** } else { ''; } //**************************************************************************************************** ?>
Merci à tous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 mars 2011, 16:58

nikel, peu tu cliquer sur le bouton résolus du message qui t'aider :mrgreen: (c'est "un bouton vert")

de plus utiliser la balise php (juste au dessus de zone de saisie permettrais de mieux lire l code)


@+
Il en faut peu pour être heureux ......