IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] afficher un compteur avec sleep


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 49
    Points
    49
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti Avatar de rems033
    Profil pro
    Inscrit en
    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 : 345
    Points
    345
    Par défaut
    Dans un premier temps, enregistre le nombre de mails selectionnées dans une variable !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    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?

  4. #4
    Membre averti Avatar de rems033
    Profil pro
    Inscrit en
    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 : 345
    Points
    345
    Par défaut
    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 !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    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

Discussions similaires

  1. [Python 3.X] afficher compteur avec tkinter
    Par mingote dans le forum Tkinter
    Réponses: 12
    Dernier message: 22/03/2015, 21h38
  2. E-mail de l'expéditeur avec le composant serveur Outlook
    Par DavFau dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 19/01/2008, 10h09
  3. [Mail] Afficher un mail avec des images
    Par BlacKou dans le forum Langage
    Réponses: 13
    Dernier message: 05/11/2006, 11h31
  4. Afficher un compteur avec nb de caractères constants
    Par aliassaf dans le forum Général Python
    Réponses: 2
    Dernier message: 22/06/2006, 18h38
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo