8797 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche un code qui peut supprimer des ligne d'un tableau ce trouvant dans une page web (les informations que j'ai dans ce tableau, viennent d'une adresse mail).
J'aimerais supprimer grâce à une boucle, qui fonctionne très bien pour mettre a jour une base de donnée, mais qui ne supprime pas les mails qui corresponde a mes contraintes.
J'ai plusieurs pages et j'aimerais qu'il les analyse toutes et qui me supprime les mails qui correspondent a ce que je demande.

voici le code que j'ai effectuer, si vous pouvez me dire se qu'y ne va pas:

			if($mails != "" && $mail =='1')
			{
				$bRes = $this->existMail($mails[$key]);
				if ($bRes == TRUE)
				{ 
				  $query="UPDATE contact SET contact = '8' WHERE mail = '".$mails[$key]."'";
				 
				  $result = mysqli_query($this->DB_Link, $query) ;
				  $this->deleteMessage();
				  $this->expunge();
				}
			}


Voici mes fonctions:

public function deleteMessage()
	{	
		return imap_delete($this->_mailbox->getResource(), $this->_msgNumber);		
	}
	
	public function expunge()
	{
		return imap_expunge($this->_mailbox->getResource());
	}


Merci d'avance.
Je sais pas si je me suis bien fait comprendre.

Le but de mon script serais en premièrement de rechercher dans ma base de données si le mail existe, si il existe, je met contact à 8, jusque là tout vas bien et quand celui ci à été mis à 8, je voudrais effacer dans mon tableau et non sur ma base le mail correspondant à celui qu'on a mis à jour et le supprimer dans le tableau automatiquement et c'est là que ça se gatte.

Il m'en a effacer mais pas tous ceux qui correspondais aux critères que j'ai passé en paramètre.

Si vous auriez une idée ou un code, je vous en serais très reconnaissante. Je cherche depuis trois jours et rien ne passe, il m'en efface une dizaine et pas plus.

Merci d'avance.
Je réussi à supprimer les mails, par contre je n'arrive pas à l'automatiser, je doit rafraichir ma page à chaque fois en sachant que j'ai que 50 mails par page et que je peut en avoir jusqu'à 10000 à traiter.

Comment faire pour que ça le face pour toutes les pages directement?

Enfin ci quelqu'un à une petite idée.
Il semblerait plutôt que ton soucis viennent de ta boucle, ou alors tu ne récupère que la première page de mails, pas l'ensemble, vu que ça fonctionne pour quelques mails.

Dans ta base de donnée, tous les mails sont marqués à 8 ou seulement ceux supprimés effectivement? Ca pourrait être un indicateur.

Par contre, pour gagner un peu en rapidité, tu devrais retirer $this->expunge() de ta boucle et ne l'appeler qu'une seule fois (il supprime tous les fichiers marqués, pas seulement 1 Smiley cligne ).
J'ai l'impression qu'il ne met pas les mail a jour dans la base de données si ils ne sont pas passé par la première page.

Donc du coup, il faut que j'actualise ma page jusqu'à ce qu'il n'y ai plus de mail renseigner et quand y en a 10000 à traiter c'est trop long.

Donc il n'y a que que ceux qui sont supprimer qui sont mis a jour dans la base.
Donc tu as bien un soucis dans ta boucle/methode de récupération des mails, tu ne récupère que les 50 premiers, ce qui pourrait correspondre à une page de mail peut-être... C'est de ce coté là que tu dois regarder, parce que ta fonction marche elle apparament.
Enfaite la personne qui a commencer l'application, a bloquer les page à 50, je pense que ça vient de ça, je vais essayer de gratter un peu.

En tout cas merci
Cherche un limit='50' dans la requête sql qui te sélectionne tes mails et supprime le.

A moins que ce soit dans la boucle qu'il y a la limitation...
J'ai trouvé ou est placer la limitation à 50 mais je la supprime plus rien ne fonctionne.
Bonjour,

Bon après toute une soirée plongé sur mon soucis, je suis toujours au même point.
La suppression c'est bon mais c'est toujours pas automatique.
Je cherche encore.

Merci d'avance si vous trouver une solution.