Page 1 sur 1

[resolu]Envoyer résultat requete par mail

Posté : 16 mars 2011, 14:19
par steph70
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

Re: Envoyer résultat requete par mail

Posté : 16 mars 2011, 15:41
par moogli
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).

@+

Re: Envoyer résultat requete par mail

Posté : 16 mars 2011, 16:26
par steph70
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

Re: [resolu]Envoyer résultat requete par mail

Posté : 16 mars 2011, 16:58
par moogli
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)


@+