Réutiliser les données d'un FOREACH
Bonsoir à tous,
Dans le script suivant après le Foreach J'ai besoin de récupérer la variable $row['choixbase'] dans la partie mail.
Mais cela ne marche pas à l'heure actuelle. Je ne sais comment la sortir de ce contexte. Pour info, ce script me sert pour une tache cron.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| require('shared.php');
require('./PHPMailer/class.phpmailer.php');
$requete= $bdd->prepare("SELECT choixbase, articles, designations, qte, casiers, qui, pourqui FROM envoicherre WHERE envoi ='non'");
$requete->execute();
$nbart=$requete->rowCount();
if ($nbart == 0) {
}
else
{
// on recolte les données
while ($row = $requete->fetch(PDO::FETCH_ASSOC)) {
$data[$row['choixbase']] .= '<tr><td>'. $row['choixbase'] . '</td><td>'. $row['articles'] . '</td><td>' .$row['designations'] . ' </td><td> ' . $row['qte'] . '</td><td>' . $row['casiers'] . ' </td><td> ' . $row['qui'] . ' </td><td> ' . $row['pourqui']. '</td></tr>'; //'
 ';
}
foreach ($data as $base=>$contenu) {
//echo $data ;
$date = date("d-m-Y");
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";'**********';
$mail->SMTPAuth = true;
$mail->Port = 465; // Par défaut
// Authentification
$mail->Username = "********";
$mail->Password = "**********";
// Expéditeur
$mail->SetFrom('********' , "********");
// Destinataire
$mail->AddAddress('***********');
//$mail->AddCC('**************');
// Objet //////////////////////
$mail->Subject = 'Commande de pièces à ' .$row['choixbase'] . ' pour Chérré du ' . $date ;
// Votre message
$mail->MsgHTML('Merci de nous faire passer les pièces suivantes :<br><br><table width:"300px" cellspacing="2px" cellpadding="2px;" rules="all" style="border:solid 1px black;"><th>Base</th><th>Articles</th><th>Désignations</th><th>Qté</th><th>Casiers</th><th>Qui</th><th>Attribution</th>' . $contenu . '</table><br><br>Merci');
// Envoi du mail avec gestion des erreurs
if(!$mail->Send()) {
echo 'Erreur : ' . $mail->ErrorInfo;
} else {
/////////////////////
$stmt = $bdd->prepare('UPDATE envoicherre SET envoi="oui" WHERE choixbase = '.$row['choixbase'].' AND datecde = CURDATE()');
//$stmt->bindValue('choixbase',$_POST['submit'],PDO::PARAM_STR);
try {
$stmt->execute();
} catch (PDOException $e) {
error_log("error : ".$e);
}
}
}
}
?> |
J'ai mis des /////////// au dessus des deux endroits ou j'ai besoin de la variable
Merci d'avance