[resolu]Envoyer résultat requete par mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [resolu]Envoyer résultat requete par mail

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

par moogli » 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)


@+

Re: Envoyer résultat requete par mail

par steph70 » 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

Re: Envoyer résultat requete par mail

par moogli » 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).

@+

[resolu]Envoyer résultat requete par mail

par steph70 » 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