Supprimer des anciennes données quand on en renseigne des nouvelles
Résolu
Dwight
-
Dwight -
Dwight -
Bonjour,
Alors c'est compliqué à expliquer mais c'est pas grave ahah.
J'ai un site internet avec une page spécifique pour l'admin qui lui permet d'envoyer des factures à ses clients et quand il clique sur un client pour lui envoyer un mail, il peut choisir un email secondaire pour envoyer par exemple une facture en copie au comptable de l'autre société ou quelque chose comme ça.
J'aimerai donc qu'a chaque fois que nous renvoyons un mail à un client en choisissant que une adresse, que l'adresse en secondaire rentré la dernière fois ce supprime, j'aimerai donc en gros qu'a chaque fois qu'on re remplie l'adresse d'une personne, les précédentes données ce supprime.
Je ne sais pas si vous m'avez totalement compris mais je suis à disposition si jamais vous avez des questions et je remercie déjà les personnes qui vont m'aider à avancer.
Alors c'est compliqué à expliquer mais c'est pas grave ahah.
J'ai un site internet avec une page spécifique pour l'admin qui lui permet d'envoyer des factures à ses clients et quand il clique sur un client pour lui envoyer un mail, il peut choisir un email secondaire pour envoyer par exemple une facture en copie au comptable de l'autre société ou quelque chose comme ça.
J'aimerai donc qu'a chaque fois que nous renvoyons un mail à un client en choisissant que une adresse, que l'adresse en secondaire rentré la dernière fois ce supprime, j'aimerai donc en gros qu'a chaque fois qu'on re remplie l'adresse d'une personne, les précédentes données ce supprime.
Je ne sais pas si vous m'avez totalement compris mais je suis à disposition si jamais vous avez des questions et je remercie déjà les personnes qui vont m'aider à avancer.
A voir également:
- Excel tcd supprimer anciennes données
- Supprimer rond bleu whatsapp - Guide
- Liste déroulante excel - Guide
- Tcd excel - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
j'imagine qu'il suffit d'adapter la requête UPDATE.
j'imagine qu'il suffit d'adapter la requête UPDATE.
Bonjour,
Le problème ... c'est que nous ne savons rien du code que tu utilises pour faire ce traitement ..... c'est pour ça que les réponses d'yg_be sont aussi évasives...
Si tu ne nous montres pas comment c'est fait ( le code.. ) IMPOSSIBLE de te répondre !
NB: Pour poster ton code tu devras utiliser les balises de code.
Explications ( à lire ENTIEREMENT !!! ) disponibles ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le problème ... c'est que nous ne savons rien du code que tu utilises pour faire ce traitement ..... c'est pour ça que les réponses d'yg_be sont aussi évasives...
Si tu ne nous montres pas comment c'est fait ( le code.. ) IMPOSSIBLE de te répondre !
NB: Pour poster ton code tu devras utiliser les balises de code.
Explications ( à lire ENTIEREMENT !!! ) disponibles ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
//pour avoir les coordonnées du client $stmt = $pdo->prepare('SELECT * FROM clients WHERE id = :id'); $stmt->bindValue(':id', (int)$_GET['id'], PDO::PARAM_INT); $stmt->execute(); $client = $stmt->fetch(); $stmt->closeCursor(); //mettre le champ du dernier envoi mail de la table clients à jour $stmt = $pdo->prepare("UPDATE clients SET dernierEnvoiMail = :dernierEnvoiMail WHERE id = :id"); $stmt->bindValue(':id', (int)$_GET['id'], PDO::PARAM_INT); $stmt->bindValue(':dernierEnvoiMail', date("j-m-Y H:i:s"), PDO::PARAM_STR); $stmt->execute(); $stmt->closeCursor(); //selectionner le modele d'email choisi $stmt = $pdo->prepare("SELECT * from gestionmail WHERE id = :id"); $stmt->bindValue(':id', (int)$_POST['id'], PDO::PARAM_INT); $stmt->execute(); $envoimail = $stmt->fetch();
$tmp_name = $_FILES["pieceJointe"]["tmp_name"]; $name = basename($_FILES["pieceJointe"]["name"]); $ext = "pdf"; $unique = uniqid(); //permet de générer un nom unique $newImg = $unique.'.'.$ext; $destination = 'piecesjointes/'.$newImg; move_uploaded_file($tmp_name,$destination); //envoyer vers $destination qui est le dossier "piecesjointes" $data = file_get_contents($destination); $base64 = base64_encode($data); if($_POST['email1']){ //S'il n'y a pas de deuxième email de renseigné $body = [ 'Messages' => [ [ 'From' => [ 'Email' => $envoimail['expediteur'], 'Name' => "a" ], 'To' => [ [ 'Email' => $_POST['email1'], 'Name' => $client['nom'] ] ], 'Bcc' => [ [ 'Email' => $envoimail['mailCopie'], 'Name' => "a" ] ], 'Subject' => $envoimail['titre'], 'HTMLPart' => $envoimail['corpsMail'], 'Attachments' => [ [ 'ContentType' => 'application/pdf', 'Content' => $base64, 'Filename' => $_FILES['pieceJointe']['name'], 'Base64Content' => $base64 ] ] ] ] ];
if($_GET['type'] == 'facturationMensuelle') { $categorie = 'clients'; $stmt = $pdo->prepare("UPDATE clients SET dernierMailjetId2 = :dernierMailjetId, dernierStatus2 = :dernierStatus WHERE id = :id"); $stmt->bindValue(':id', (int)$_GET["id"], PDO::PARAM_INT); $stmt->bindValue(':dernierMailjetId', $messageId, PDO::PARAM_STR); $stmt->bindValue(':dernierStatus', $status, PDO::PARAM_STR); $stmt->execute(); $stmt->closeCursor(); $req = $pdo->prepare(" INSERT INTO statusEmails(messageId, status, date, categorie, idCat,email) VALUES (:messageId, :status, :date, :categorie, :idCat, :email)", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $req->execute( array( ':messageId'=>$messageId, ':status'=>$status, ':date'=>date('Y-m-d H:i:s'), ':categorie'=>$categorie, ':idCat'=>$_GET["id"], ':email'=>$_POST['email2'] )); $req->closeCursor(); } } }
Donc le code semble plus concerné le PHP ... que les requêtes dans MYSQL à proprement parler non ?
Si tel est le cas, je déplacerai ta question dans le bon forum ( celui qui traite de php )
Ensuite, ben... tu nous colles des bouts de codes ... sans aucune explication....
Quelle partie, selon toi pose problème ?
Quel est le lien entre tes deux morceaux de code ( comment tu passes de l'un à l'autre ? )
Quel sont les noms des fichiers qui contiennent ces codes ?
Je suppose que ton souci se situe sur cette ligne :
et donc... d'où vient cette variable $envoimail ??
Il faudrait vraiment que tu fournisses tout ce qui est nécessaire à la résolution de ton souci au lieu de ne donner que des bribes d'informations.. Sinon on ne va pas avancer ...
Si tel est le cas, je déplacerai ta question dans le bon forum ( celui qui traite de php )
Ensuite, ben... tu nous colles des bouts de codes ... sans aucune explication....
Quelle partie, selon toi pose problème ?
Quel est le lien entre tes deux morceaux de code ( comment tu passes de l'un à l'autre ? )
Quel sont les noms des fichiers qui contiennent ces codes ?
Je suppose que ton souci se situe sur cette ligne :
'Email' => $envoimail['mailCopie'],
et donc... d'où vient cette variable $envoimail ??
Il faudrait vraiment que tu fournisses tout ce qui est nécessaire à la résolution de ton souci au lieu de ne donner que des bribes d'informations.. Sinon on ne va pas avancer ...
satutsEmail va récupérer les infos de distribution, savoir si l'email a été ouvert ou distribué directement depuis l'appli mailjet (c'est l'appli qui nous permet d'envoyer ces mails) et les infos date et heure pour ensuite renvoyer ces infos à "clients" et la table clients étant liée à facturationMensuelles (ma page internet où j'affiche mes clients) va afficher sur ma page les petits ronds de couleurs avec la date, l'heure et le niveau de distribution du mail.
C'est sacrément fouillis tes explications....
En plus.. j'ai d'avantage l'impression que c'est la façon de récupérer les données (pour afficher ou non les ronds.. ) que la façon d'insérer/supprimer d'éventuelles données...
Reprenons dans l'ordre :
En premier.... avec quel code affiches tu ta liste ( et les ronds ) ( code COMPLET ! et en précisant le nom du/des fichier(s) )
En plus.. j'ai d'avantage l'impression que c'est la façon de récupérer les données (pour afficher ou non les ronds.. ) que la façon d'insérer/supprimer d'éventuelles données...
Reprenons dans l'ordre :
En premier.... avec quel code affiches tu ta liste ( et les ronds ) ( code COMPLET ! et en précisant le nom du/des fichier(s) )
Voici mon code où j'affiche ma liste : facturationMensuelle.php
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Gestion interne clients</title> <link rel="stylesheet" media="screen" href="style.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link rel="shortcut icon" type="image/png" href="../images/favicon1.jpg" /> </head> <body class="fond3"> <?php session_start(); include('pdo.php'); include('headeradmin.php'); if ($_SESSION['niveau']!="admin"){ header('Location:index.php?acces=interdit'); } ?> <br> <div style="text-align:center"> <h1 class="h1liste">Facturation Mensuelle</h1> </div> <br> <div class="container" style="text-align:left; position:relative; bottom:10px"> <a href="admin.php" class="retour"><img class="imagehome" src="icones/retour.png"></a> </div> <br> <?php $stmt = $pdo->prepare('SELECT * from modeledefaut where id = 1'); $stmt->execute(); $maildef=$stmt->fetch(); ?> <div style="text-align:center"> <form action="mailDefautReq.php" name="form" method="POST"> <label for="choix">Mail par défaut : </label> <input type="number" style="width:40px; text-align:center" name="choix" value="<?php echo $maildef['choix'] ?>"> <button type="submit" name="submit" style="width:85px" class="btn"><img src="icones/accept.png" width="30"></button> </form> </div> <?php if(isset($_GET['acces']) AND $_GET['acces']=="interdit"){ ?> <div style="text-align:center; color:red"> Vous n'avez pas les droits d'accès à cette page ! </div><br> <?php } ?> <br> <?php $stmt = $pdo->prepare('SELECT * from clients WHERE facturationMensuelle = "oui" ORDER BY codeClient ASC'); $stmt->execute(); $resu=$stmt->fetchALL(); // POUR LE TRI PAR CODE CLIENT if(isset($_GET['triCode'])){ if($_GET['triCode']=="codeAsc"){ $stmt = $pdo->prepare('SELECT * from clients WHERE facturationMensuelle = "oui" ORDER BY codeClient ASC'); $stmt->execute(); $resu=$stmt->fetchALL(); } if($_GET['triCode']=="codeDesc"){ $stmt = $pdo->prepare('SELECT * from clients WHERE facturationMensuelle = "oui" ORDER BY codeClient DESC'); $stmt->execute(); $resu=$stmt->fetchALL(); } } ?> <?php if(count($resu)==0){ ?> <div style="text-align:center">Aucun résultat.</div> <?php }else{ ?> <div style="text-align:center">Nombre de clients dans la liste : <?php echo count($resu) ?></div><br> <table> <tr> <th> <form method="get" action="facturationMensuelle.php"> <?php if ((!isset($_GET['triCode'])) OR isset($_GET['triCode']) AND ($_GET['triCode'] == "codeAsc")){ ?> <button name="triCode" value="codeDesc" style="font-weight:bold; border:none;background-color: rgba(255,255,255,0);">Code client <img style="padding-bottom:4px; width:13px" src="icones/up.png"></button> <?php } if (isset($_GET['triCode']) AND ($_GET['triCode'] == "codeDesc")){ ?> <button name="triCode" value="codeAsc" style="font-weight:bold; border:none;background-color: rgba(255,255,255,0);">Code client <img style="padding-bottom:4px; width:13px" src="icones/down.png"></button> <?php } ?> </form> </th> <th>Nom</th> <th>Facture Mail</th> <th>Etat Mail</th> </tr> <?php foreach ($resu as $res) { ?> <tr class="trlist"> <td style="width:150px; text-align:left; padding-left:4%"><?php echo $res['codeClient']?></td> <td style="width:400px; text-align:left; padding-left:10%"><?php echo $res['nom']?></td> <td style="width:200px; text-align:center"><a href="choisirPieceJointe.php?id=<?php echo $res['id']?>"> <img src="icones/mail.png" style="margin-left:5px; margin-bottom:2px; width:20px"></a></td> <td style="width:200px; text-align:center"> <?php //pour avoir les coordonnées du client $stmt = $pdo->prepare('SELECT * FROM statusEmails WHERE messageId = :id'); $stmt->bindValue(':id', (int)$res['dernierMailjetId'], PDO::PARAM_INT); $stmt->execute(); $mailSent = $stmt->fetch(); $stmt->closeCursor(); if($res['dernierStatus'] == 'queued') { ?> <span class="badge badge-primary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'opened') { ?> <span class="badge badge-success" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'sent') { ?> <span class="badge badge-secondary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'softbounced') { ?> <span class="badge badge-warning" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'hardbounced') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'bounced') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'spam') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if (!empty($res['dernierMailjetId2'])){ //pour avoir les coordonnées du client $stmt = $pdo->prepare('SELECT * FROM statusEmails WHERE messageId = :id'); $stmt->bindValue(':id', (int)$res['dernierMailjetId2'], PDO::PARAM_INT); $stmt->execute(); $mailSent = $stmt->fetch(); $stmt->closeCursor(); if($res['dernierStatus2'] == 'queued') { ?> <span class="badge badge-primary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'opened') { ?> <span class="badge badge-success" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'sent') { ?> <span class="badge badge-secondary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'softbounced') { ?> <span class="badge badge-warning" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'hardbounced') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'bounced') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus2'] == 'spam') { ?> <span class="badge badge-danger" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } } ?> </td> </tr> <?php } ?> </table> <br><br> <?php } ?> <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </body> </html>
ce qui semble confirmer que le soucis vient du champ dernierStatus2 de la table clients.
c'est la couleur du rond correspondant qui n'est pas correcte? à quoi correspond cette couleur, quel est le status correspondant à cette couleur?
peux-tu partager le code complet (et le nom) du fichier dont tu as partagé une partie en #8?
tu peux aussi publier le fichier sur internet, et partager ici un lien vers le fichier.
c'est la couleur du rond correspondant qui n'est pas correcte? à quoi correspond cette couleur, quel est le status correspondant à cette couleur?
peux-tu partager le code complet (et le nom) du fichier dont tu as partagé une partie en #8?
tu peux aussi publier le fichier sur internet, et partager ici un lien vers le fichier.
La couleur du rond se modifier toute seule, là par exemple si quelqu'un à son rond en gris (délivré), dès qu'il va ouvrir son mail le statut va changer et le rond va devenir vert (ouvert)
Voici mon code de envoyerMailMens.php, qui me permet une fois les emails rentrés dans mon formulaire d'envoyer toutes les données à ma liste et dans ma base de données :
https://drive.google.com/file/d/1WNrcybovsnqMXFsfa8Wku2mgKgPSVeEO/view?usp=sharing
J'ai du la mettre sur google drive car impossible de copier la page de code ici.
Voici mon code de envoyerMailMens.php, qui me permet une fois les emails rentrés dans mon formulaire d'envoyer toutes les données à ma liste et dans ma base de données :
https://drive.google.com/file/d/1WNrcybovsnqMXFsfa8Wku2mgKgPSVeEO/view?usp=sharing
J'ai du la mettre sur google drive car impossible de copier la page de code ici.
si j'ai compris, le deuxième rond correspond au statut de l'envoi du mail à la deuxième adresse.
est-ce correct?
quelle est la couleur (et le status) dans le cas où le mail n'a pas été envoyé à la deuxième adresse parce qu'une deuxième adresse n'a pas été fournie?
quelle couleur souhaites-tu dans ce cas-là?
est-ce le seul soucis que tu veux résoudre?
est-ce correct?
quelle est la couleur (et le status) dans le cas où le mail n'a pas été envoyé à la deuxième adresse parce qu'une deuxième adresse n'a pas été fournie?
quelle couleur souhaites-tu dans ce cas-là?
est-ce le seul soucis que tu veux résoudre?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
je pense que dans l'UPDATE de la ligne 104 de envoyerMailMens.php, il faut mettre à jour le champ dernierStatus2.
que contient-il pour les clients pour lesquels on n'a jamais utilisé la seconde adresse?
que contient-il pour les clients pour lesquels on n'a jamais utilisé la seconde adresse?
Je pense que le code n'est pas bien pensé.
Et il manque, à mon avis, une table intermédiaire.
Il aurait fallu que tu stockes stockes dans une table chaque envoie ( mail simple ou mail avec copie )
La table pourrait être de la forme :
envoi ( id, date )
Puis, pour chaque adresse à laquelle tu as envoyer ton mail, que tu indiques l'id dans ta table statusEmails
Table qui aurait à minima, les colonnes
messageId, id_ennvoie (l'id de l'autre table), email
De cette façon, tu n'auras plus besoin d'avoir deux requête distinctes pour récupérer les infos
et ça limiterait également les requêtes dans des boucles php (chose à éviter au maximum ! )
Au niveau de ton code php .. il serait pas mal également de factoriser un peu et éviter de dupliquer ton code html inutilement..
par exemple, quand on voit
(je n'ai pris que les premiers... )
On voit que la seule chose qui change.. c'est une CLASS
Tu aurais donc pu l'écrire plus proprement comme ceci
ça fait moins fouillis non ?
De plus, vu que tu fais du PDO, applique ce qui est indqiué dans ce lien
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et aussi ça :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et il manque, à mon avis, une table intermédiaire.
Il aurait fallu que tu stockes stockes dans une table chaque envoie ( mail simple ou mail avec copie )
La table pourrait être de la forme :
envoi ( id, date )
Puis, pour chaque adresse à laquelle tu as envoyer ton mail, que tu indiques l'id dans ta table statusEmails
Table qui aurait à minima, les colonnes
messageId, id_ennvoie (l'id de l'autre table), email
De cette façon, tu n'auras plus besoin d'avoir deux requête distinctes pour récupérer les infos
et ça limiterait également les requêtes dans des boucles php (chose à éviter au maximum ! )
Au niveau de ton code php .. il serait pas mal également de factoriser un peu et éviter de dupliquer ton code html inutilement..
par exemple, quand on voit
if($res['dernierStatus'] == 'queued') { ?> <span class="badge badge-primary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'opened') { ?> <span class="badge badge-success" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?> <?php if($res['dernierStatus'] == 'sent') { ?> <span class="badge badge-secondary" style="height:10px; width:10px" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span> <?php } ?>
(je n'ai pris que les premiers... )
On voit que la seule chose qui change.. c'est une CLASS
Tu aurais donc pu l'écrire plus proprement comme ceci
switch($res['dernierStatus']){ case "queued": $class = "primary"; break; case "opened": $class = "success"; break; case "sent": $class = "secondary"; break; //etc... } ?> <span class="badge badge-<?php echo $class;?>" style="height:10px; width:10px;" data-toggle="tooltip" data-placement="top" title="<?=$res['dernierEnvoiMail']?> - <?=$mailSent['email']?>"> </span>
ça fait moins fouillis non ?
De plus, vu que tu fais du PDO, applique ce qui est indqiué dans ce lien
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et aussi ça :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
précise maintenant dans quelle table et dans quels champs sont mémorisées ces deux adresses.