Supprimer des anciennes données quand on en renseigne des nouvelles
Résolu/Fermé
A voir également:
- Excel tcd supprimer anciennes données
- Tableaux dynamiques croises - Suppression anciennes données ✓ - Forum - Excel
- Supprimer des anciennes données quand on en renseigne des nouvelles ✓ - Forum - PHP
- Tableau croisé dynamique - Suppression anciennes données - Forum - Excel
- Supprimer un tableau excel en gardant les données ✓ - Forum - Excel
- Supprimer des données précises dans une colonne Excel ✓ - Forum - Excel
6 réponses
yg_be
3 mars 2021 à 12:28
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
3 mars 2021 à 12:28
bonjour,
j'imagine qu'il suffit d'adapter la requête UPDATE.
j'imagine qu'il suffit d'adapter la requête UPDATE.
jordane45
3 mars 2021 à 15:00
- Messages postés
- 36060
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 16 août 2022
3 mars 2021 à 15:00
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(); } } }
jordane45
3 mars 2021 à 15:26
- Messages postés
- 36060
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 16 août 2022
3 mars 2021 à 15:26
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.
jordane45
3 mars 2021 à 17:00
- Messages postés
- 36060
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 16 août 2022
3 mars 2021 à 17:00
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>
yg_be
4 mars 2021 à 10:59
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 10:59
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.
Dwight
>
yg_be
4 mars 2021 à 11:09
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 11:09
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.
yg_be
4 mars 2021 à 13:08
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 13:08
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?
Dwight
>
yg_be
4 mars 2021 à 13:43
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 13:43
Oui tu as bien compris !
dans le cas où le deuxième mail n'a pas été fournie, si une deuxième adresse avait déjà été fournie une fois que ce soit pour un test ou pour autre chose, le rond reste, j'aimerai donc que si je renvoie un mail à une même personne avec la quelle j'avais déjà envoyé un mail aux deux adresses, renseigné qu'une seule adresse et au lieu de laisser le deuxième rond par rapport à la dernière fois où j'avais fournie deux adresses, si je fournie qu'une seule adresse je voudrais que le deuxième rond de la deuxième adresse disparaisse. (Dans mes clients pour les quelles j'ai toujours renseigné qu'une seule adresse mail, ils n'ont qu'un rond mais imaginons si aujourd'hui je fournis les 2 adresses, il y aura deux ronds et imaginons qu'il y est 2 ronds aujourd'hui par rapport aux deux adresses mails, si dans 1 mois je voudrais renvoyer un mail mais que en renseignant une seule adresse, dans ma fiche des clients dans facturationMensuelle.php, j'aurais le premier rond avec la bonne date et la bonne adresse, mais j'aurais le deuxième rond de la dernière fois avec une date antérieure)
Donc le seul soucis que j'aimerai résoudre, ce serait de supprimer les anciennes données (etatMail) à chaque fois que je re remplis le formulaire pour ce client, comme ça, si le mois dernier j'avais envoyé un mail à l'adresse mail de mon client + à son comptable (du coup 2 ronds car 2 adresses mails) mais que aujourd'hui par exemple je dois envoyé un mail que à mon client et du coup je ne renseigne rien dans mon champ "mail2" de mon formulaire, qu'à la fin je n'ai qu'un seul rond et que ça supprime le mail du mois dernier que j'avais envoyé au comptable par exemple.
dans le cas où le deuxième mail n'a pas été fournie, si une deuxième adresse avait déjà été fournie une fois que ce soit pour un test ou pour autre chose, le rond reste, j'aimerai donc que si je renvoie un mail à une même personne avec la quelle j'avais déjà envoyé un mail aux deux adresses, renseigné qu'une seule adresse et au lieu de laisser le deuxième rond par rapport à la dernière fois où j'avais fournie deux adresses, si je fournie qu'une seule adresse je voudrais que le deuxième rond de la deuxième adresse disparaisse. (Dans mes clients pour les quelles j'ai toujours renseigné qu'une seule adresse mail, ils n'ont qu'un rond mais imaginons si aujourd'hui je fournis les 2 adresses, il y aura deux ronds et imaginons qu'il y est 2 ronds aujourd'hui par rapport aux deux adresses mails, si dans 1 mois je voudrais renvoyer un mail mais que en renseignant une seule adresse, dans ma fiche des clients dans facturationMensuelle.php, j'aurais le premier rond avec la bonne date et la bonne adresse, mais j'aurais le deuxième rond de la dernière fois avec une date antérieure)
Donc le seul soucis que j'aimerai résoudre, ce serait de supprimer les anciennes données (etatMail) à chaque fois que je re remplis le formulaire pour ce client, comme ça, si le mois dernier j'avais envoyé un mail à l'adresse mail de mon client + à son comptable (du coup 2 ronds car 2 adresses mails) mais que aujourd'hui par exemple je dois envoyé un mail que à mon client et du coup je ne renseigne rien dans mon champ "mail2" de mon formulaire, qu'à la fin je n'ai qu'un seul rond et que ça supprime le mail du mois dernier que j'avais envoyé au comptable par exemple.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
4 mars 2021 à 15:17
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 15:17
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?
yg_be
4 mars 2021 à 15:29
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 15:29
en regardant mieux, je pense qu'il faut surtout vider le champ dernierMailjetId2.
Dwight
>
yg_be
4 mars 2021 à 15:31
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 15:31
Comment faire ça ? Oui le but c'est vraiment de vider dernierMailjetId2 quand il y a seulement 1 seul destinataire de renseigné.
yg_be
Modifié le 4 mars 2021 à 15:38
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
Modifié le 4 mars 2021 à 15:38
en ajoutant ce champ dans l'UPDATE de la ligne 104.
quelle est la valeur de ce champ pour les clients pour lesquels on n'a jamais utilisé la seconde adresse?
quelle est la valeur de ce champ pour les clients pour lesquels on n'a jamais utilisé la seconde adresse?
Dwight
>
yg_be
4 mars 2021 à 15:40
- Messages postés
- 20043
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
4 mars 2021 à 15:40
Pour tous les clients pour lesquels on n'a jamais utilisé la seconde adresse, dernierMailjetId2 et dernierStatus2 restent des champs vides.
jordane45
Modifié le 4 mars 2021 à 15:20
- Messages postés
- 36060
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 16 août 2022
Modifié le 4 mars 2021 à 15:20
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
Cordialement,
Jordane
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
Cordialement,
Jordane
3 mars 2021 à 13:54
3 mars 2021 à 14:34
3 mars 2021 à 14:44
3 mars 2021 à 15:45
précise maintenant dans quelle table et dans quels champs sont mémorisées ces deux adresses.
3 mars 2021 à 15:54