Supprimer des anciennes données quand on en renseigne des nouvelles

Résolu/Fermé
Dwight - 3 mars 2021 à 11:55
 Dwight - 5 mars 2021 à 13:29
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.

6 réponses

yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196
3 mars 2021 à 12:28
bonjour,
j'imagine qu'il suffit d'adapter la requête UPDATE.
1
Oui c'est ça, mais je ne sais pas trop comment faire pour bien l'adapter....
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > Dwight
3 mars 2021 à 14:34
peut-être y inclure l'adresse en secondaire.
0
Dwight > yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022

3 mars 2021 à 14:44
En fait imaginons hier j'envoie un mail aux deux adresses, et aujourd'hui j'envoie un mail que a une adresse, dans mon champ de mail sur mon site pour l'accusé de réception, ça prend en compte le dernier changement sauf que comme j'ai remplis qu'une adresse, la deuxieme qui avait été remplis hier va rester. Donc j'aimerai qu'a chaque changement, à chaque renvoie de mail, que ça supprime les anciennes données.
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > Dwight
3 mars 2021 à 15:45
cela devient plus clair.
précise maintenant dans quelle table et dans quels champs sont mémorisées ces deux adresses.
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022

3 mars 2021 à 15:54
je suppose qu'il s'agit de la table gestionmail, que la seconde adresse est dans le champ mailCopie, mais je ne vois pas le champ de la première adresse.
0
jordane45
Messages postés
36060
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 août 2022
4 280
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
0
//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();
0
Dwight > Dwight
3 mars 2021 à 15:19
$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
                            ]
                        ]
                ]
            ]
        ];
0
Dwight > Dwight
3 mars 2021 à 15:21
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();


}
}
}
0
Dwight > Dwight
3 mars 2021 à 15:22
Je n'ai pas réussi à vous envoyez tout mon code car il y a des copier coller qui n'ont pas été accepté sur commentçamarche pour je ne sais quelle raison :/ mais je pense que j'ai envoyé le plus important, en espérant que vous puissiez m'aider avec ceci
0
jordane45
Messages postés
36060
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 août 2022
4 280 > Dwight
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 :
   '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 ...
0
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.
0
jordane45
Messages postés
36060
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 août 2022
4 280
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) )



0
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>
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > Dwight
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.
0
Dwight > yg_be
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.
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > Dwight
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?
0
Dwight > yg_be
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196
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?
0
Ah maintenant que j'y réfléchis tu as peut être raison car pour l'UPDATE de dernierStatus2, il se fait uniquement si il y a quelque chose de remplis dans mail2.

Pour les clients pour lesquels on n'a jamais utilisé la seconde adresse, ils ont uniquement un seul rond
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196
4 mars 2021 à 15:29
en regardant mieux, je pense qu'il faut surtout vider le champ dernierMailjetId2.
0
Dwight > yg_be
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é.
0
yg_be
Messages postés
20043
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 août 2022
1 196 > Dwight
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?
0
Dwight > yg_be
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.
0
jordane45
Messages postés
36060
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 août 2022
4 280
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
 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
0