Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2008, 21h37   #1
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 88
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 88
Points : 18
Points : 18
Par défaut [Mail] afficher un compteur avec sleep

Bonsoir,

je souhaite afficher le nombre de mail envoyé durant une boucle

je recupere la liste des mail de ma bdd, je boucle dessus

pour simuler ca je fais une boucle for, le but est d'afficher le nombre de mail envoyé et tout les 1000 envoie faire une pause , afficher un message et ca repart.
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>Document sans titre</title>
 
 
 
</head>
 
<body ><DIV ID="bloc"></DIV>
<?php
 
for ($i = 1; $i<15000 ; $i++)
{
 
?>
<script type="text/javascript">
	function update(){
		document.getElementById("bloc").innerHTML = <?php echo $i ; ?>;
	}
	timer = setTimeout("update()",10)
</script>
<?php
 
 
}
echo "ooo";
 
	sleep(10);
		?>
        <script type="text/javascript">
 
				document.getElementById("bloc").innerHTML = "pause";
 
 
		</script>
 
        <?php
		for ($i = 15000; $i<30000 ; $i++)
{
 
?>
<script type="text/javascript">
	function update(){
		document.getElementById("bloc").innerHTML = <?php echo $i ; ?>;
	}
	timer = setTimeout("update()",10)
</script>
<?php
}
 
?>
 
</body>
</html>

Je pense que je m'y prend mal peut etre avec vous une idée, une piste

merci à vous
antonin
tonin10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2008, 08h42   #2
Membre confirmé
 
Avatar de rems033
 
Inscription : mai 2007
Messages : 513
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : mai 2007
Messages : 513
Points : 299
Points : 299
Dans un premier temps, enregistre le nombre de mails selectionnées dans une variable !
Code :
1
2
3
4
 
$sql = "SELECT COUNT(emails) FROM table_mails" ;
$req = mysql_query($sql) or die(mysql_error()) ;
$nb_mails = mysql_affected_rows();
Ensuite, tu boucle sur le nombre de mail pour l'envoi :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$sql = "SELECT emails FROM table_mails" ;
$req = mysql_query($sql) or die(mysql_error()) ;
$tab_mail = mysql_fetch_array($req);
 
for($i=0;$i<$nb_mails;$i++)
{
    envoi_mail($tab_mail[$i]);     // ton envoi de mail
    if($i%1000==0)
    {
          // ta pause ou ton affichage
    }
}
Voila tout,
bon courage et à bientôt !
__________________

rems033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2008, 11h00   #3
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 88
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 88
Points : 18
Points : 18
Merci pour ta réponse

ma difficulté n'etait pas trop comment appliquer ma boucle sur les mails, mais plutot l'affichage en temps réél, je me suis mal exprimé je pense

d'ailleur un truc bizarre, si je prend mon code

normalement dans ma page je devrais avoir:
mon div qui augmente
arrivé à 15 000
il devrait il avoir affiché la pause "ooo"
puis la fonction sleep stop le script 10 sec
puis le compteur reprend

et ben non j'ai
mon compteur qui augmente et stop vers 14600
puis la pause sleep
puis affichage de "ooo"
et immédiatement la fin du compteur

??

curieux ou y'a quelques choses que je ne comprend pas?

pour en revenir à ce que tu me donnes , y'a pas de diff entre faire un modulo ou faire un if ($i == 0)
??
et comment faire pour que je vois bien mon compteur monté en temps réel?

encore merci pour votre aide

antonin


ps: un peu pas grand chose à voir mais bon je pose la question, j'ai fais un test avec une boucle de 40 000 , mon affichage monte bien mais passé les 10 000 tours de boucle ca va moins vite , c'est normale?
tonin10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2008, 12h25   #4
Membre confirmé
 
Avatar de rems033
 
Inscription : mai 2007
Messages : 513
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : mai 2007
Messages : 513
Points : 299
Points : 299
A ce moment la, le problème peut venir de ton css pour la hauteur de la div.
Peux-tu mettre ton code css pour ce div en ligne. d'ailleurs, un exemple ne srait pas mal venu aussi au passage !

En plus, pour le rafraichissement temps réel, il ne te faut juste que rafraîchir ta page à chaque tour de boucle à l'aide de javascript ou même une redirection hypertexte vers la page concernée étant donné que le code php est géré côté serveur et que le javascript côté client...

Il faut y aller avec précaution lorsque tu mélanges les 2 !

Merci !
__________________

rems033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2008, 13h19   #5
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 88
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 88
Points : 18
Points : 18
merci Rems de prendre le temps de me répondre

comme tu dis je pense que ma méthode est mauvaise, mélange de javascript et de php, quand j'y repense ca peut pas coller

ce qui m'embete avec ta méthode c'est que ca rafraichi toute la fenetre ,pas tres jolie, faut que je regarde du coté de l'ajax peut etre
je continu mes test demain
tonin10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web