Variables dans corps du message via une requête SQL

Fermé
gabinou - Modifié le 18 mai 2022 à 14:10
gabinou7 Messages postés 3 Date d'inscription lundi 28 mars 2022 Statut Membre Dernière intervention 18 mai 2022 - 18 mai 2022 à 15:52
Bonjour,

J'ai mis une tache CRON en place pour pouvoir recevoir un récapitulatif de toutes les commandes du jour par la suite.
Ma tache CRON m'envoie bien un mail mais je n'arrive pas à trouver des solutions pour recevoir ce tableau dans le corps de ce message ( normalement c'est sensé etre un PDF mais commençons simple), actuellement je n'ai noté qu'en dur, je devrai mettre les variables mais cela ne marche pas, je déclare peut etre mon code dans le mauvais sens
Actuellement j'ai crée une requête pour exporter ma BDD en PDF via un bouton .
Ce code, vu qu'il marche très bien, j'aimerai pouvoir le réutilisé dans mon deuxième fichier qui marche très bien dans l'envoi de mail
Je suis une grande débutante en PHP,

code export PDF


<?php
//connexion à ma BDD perso
$connect = mysqli_connect("..", "..", "..", "..");


if(isset($_POST["submit"]))
{
$query = "SELECT identifiant,nom,prenom,adresse,complementAdresse,ville,codePostal,mail,fixe,portable,kit,tube,aiguille,adaptateur,cartonSmall,cartonBig,etiquetteChronopost,enveloppeBulle,commentaire,dateCommande FROM exemple";
$res = mysqli_query($connect, $query);
if(mysqli_num_rows($res) > 0)
{
$export = '
<table>
<tr>

<th>identifiant</th>
<th>nom</th>
<th>prenom</th>
<th>adresse</th>
<th>complement adresse</th>
<th>ville</th>
<th>code postal</th>
<th>mail</th>
<th>fixe</th>
<th>portable</th>
<th>nbre de kits</th>
<th>nbre de tubes</th>
<th>nbre aiguilles</th>
<th>nbre adaptateur</th>
<th>nbre petit carton</th>
<th>nbre grand carton</th>
<th>nbre etiquette chronopost</th>
<th>nbre enveloppe bulle</th>
<th>commentaire</th>
<th>date commande</th>

</tr>
';
while($row = mysqli_fetch_array($res))
{
$export .= '
<tr>

<td>'.$row["identifiant"].'</td>
<td>'.$row["nom"].'</td>
<td>'.$row["prenom"].'</td>
<td>'.$row["adresse"].'</td>
<td>'.$row["complementAdresse"].'</td>
<td>'.$row["ville"].'</td>
<td>'.$row["codePostal"].'</td>
<td>'.$row["mail"].'</td>
<td>'.$row["fixe"].'</td>
<td>'.$row["portable"].'</td>
<td>'.$row["kit"].'</td>
<td>'.$row["tube"].'</td>
<td>'.$row["aiguille"].'</td>
<td>'.$row["adaptateur"].'</td>
<td>'.$row["cartonSmall"].'</td>
<td>'.$row["cartonBig"].'</td>
<td>'.$row["etiquetteChronopost"].'</td>
<td>'.$row["enveloppeBulle"].'</td>
<td>'.$row["commentaire"].'</td>
<td>'.$row["dateCommande"].'</td>








</tr>
';
}
$export .= '</table>';
header('Content-Type: application/xls');
header('Content-Disposition: attachment; filename=commande-ifce.xls');
echo $export;
}
}

?>



code pour l'envoi de mail via CRON


<?php
// Plusieurs destinataires
$to = 'r';

// Sujet
$subject = 'Calendrier des anniversaires pour Août';

// message
$message = '
<html>
<head>
<title>Calendrier des anniversaires pour Août</title>
</head>
<body>
<p>Voici les anniversaires à venir au mois d\'Août !</p>
<table>
<tr>
<th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
</tr>
<tr>
<td>Josiane</td><td>3</td><td>Août</td><td>1970</td>
</tr>
<tr>
<td>Emma</td><td>26</td><td>Août</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// En-têtes additionnels
$headers[] = 'To: ';
$headers[] = 'From:';
$headers[] = 'Cc: ';
$headers[] = 'Bcc: ';

// Envoi
mail($to, $subject, $message, implode("\r\n", $headers));

A voir également:

2 réponses

yg_be Messages postés 23337 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 novembre 2024 Ambassadeur 1 551
18 mai 2022 à 14:49
bonjour,
as-tu envisagé d'ajouter des
echo
pour suivre ce que fait ton code?
0
gabinou7 Messages postés 3 Date d'inscription lundi 28 mars 2022 Statut Membre Dernière intervention 18 mai 2022
18 mai 2022 à 15:52
J'ai modifié mon code
je reçois bien le mail si je clique sur le lien et le PDF se télécharge bien .
J'essaye de mettre le CRON en place sur ce fichier mais pour l'instant il n'a pas l'air de marcher
C'est pas encore le résultat que j'attends.
Le problème c'est que le css n'est pris que pour mon fichier Excel et non pour le formulaire que je reçois


<?php
//connexion à ma BDD perso
$connect = mysqli_connect("..", "..", "..", "..");



$query = "SELECT identifiant,nom,prenom,adresse,complementAdresse,ville,codePostal,mail,fixe,portable,kit,tube,aiguille,adaptateur,cartonSmall,cartonBig,etiquetteChronopost,enveloppeBulle,commentaire,dateCommande FROM exemple";
$res = mysqli_query($connect, $query);
$export = '
<h1 style="text-align:center"> recapitulatif de toutes les commandes </h1>
<table>

<tr style="border:1px solid black; height:30px">

<th>identifiant</th>
<th>nom</th>
<th>prenom</th>
<th>adresse</th>
<th>complement adresse</th>
<th>ville</th>
<th>code postal</th>
<th>mail</th>
<th>fixe</th>
<th>portable</th>
<th>nbre de kits</th>
<th>nbre de tubes</th>
<th>nbre aiguilles</th>
<th>nbre adaptateur</th>
<th>nbre petit carton</th>
<th>nbre grand carton</th>
<th>nbre etiquette chronopost</th>
<th>nbre enveloppe bulle</th>
<th>commentaire</th>
<th>date commande</th>

</tr>
';
while ($row = mysqli_fetch_array($res)) {
$export .= '

<tr style="border-right:1px solid black; margin:10px">

<td>' . $row["identifiant"] . '</td>
<td>' . $row["nom"] . '</td>
<td>' . $row["prenom"] . '</td>
<td>' . $row["adresse"] . '</td>
<td>' . $row["complementAdresse"] . '</td>
<td>' . $row["ville"] . '</td>
<td>' . $row["codePostal"] . '</td>
<td>' . $row["mail"] . '</td>
<td>' . $row["fixe"] . '</td>
<td>' . $row["portable"] . '</td>
<td>' . $row["kit"] . '</td>
<td>' . $row["tube"] . '</td>
<td>' . $row["aiguille"] . '</td>
<td>' . $row["adaptateur"] . '</td>
<td>' . $row["cartonSmall"] . '</td>
<td>' . $row["cartonBig"] . '</td>
<td>' . $row["etiquetteChronopost"] . '</td>
<td>' . $row["enveloppeBulle"] . '</td>
<td>' . $row["commentaire"] . '</td>
<td>' . $row["dateCommande"] . '</td>








</tr>
';
}
$export .= '</table>';
header('Content-Type: application/xls');
header('Content-Disposition: attachment; filename=commande-ifce.xls');
echo $export;



// Sujet
$subject = 'commandes IFCE';

// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=utf-8';

// En-têtes additionnels
$headers[] = 'To: ';
$headers[] = 'From: =';
$headers[] = 'Cc: ';
$headers[] = 'Bcc: ';

// Envoi
mail($to, $subject, $export, implode("\r\n", $headers));



0