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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Compteur incrémentation rapide + division instantanée du résultat


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut [Résolu] Compteur incrémentation rapide + division instantanée du résultat
    Bonjour à toutes et tous,
    Je suis sur mon site et j'avoue que je galère un peu là... J'aurais besoin d'un petit tuyau ou d'une traduction en php de ce que je veux...
    J'ai par le passé pas mal touché au php et à python mais sans pratique, tout part très vite, comme l'allemand aussi^^

    Donc voilà, pour faire simple, je veux que sur mon site s'affiche un compteur qui défile à une vitesse donnée et que plus loin soit affiché en direct ce chiffre, divisé par un nombre fixe.
    Alors voilà pour moi ce que ça donne:

    donc mon algorithme donne:
    afficher i
    puis i+1
    donc là ça s'incrémente sans fin... mais comment peut-on régler la vitesse de défilement?
    Et deuxièmement, je souhaite faire la manip basique suivante:
    afficher i divisé par un chiffre donné et toujours fixe, X par exemple.

    Et sur le site en html, ça donnerait sommairement:
    Déjà i machins, soit i/x par personne


    Je suis désolé, je sais que c'est du b-a-ba, et que je devrais réussir tt seul... Mais je vous avoue que mon travail me prend tout mon temps... Et aussi parce que je sais que c'est facile (je l'aurais fait sans probleme il y a qq années), si qqn pouvait prendre une ou deux minutes, je lui en serait sincèrement reconnaissant...

    Merci beaucoup,
    Pierre

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Qu'est-ce que tu entends par la vitesse de défilement ?
    Le code suivant va afficher des nombres de 1 à 9, leur valeur divisée par 3, et attendre 1 seconde entre chaque affichage, si j'ai bien compris ce que tu cherches à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $x = 3;
    for($i=1; $i<10; $i++)
    {
    	echo $i ." - ". round($i/$x, 2) ."<br />";
    	sleep(1);
    }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse

    Par vitesse de défilement, j'entends le temps qu'il faut pour incrémenter...
    merci

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    c'est ce que Palca vient de te dire

    Pour modifier ta vitesse de défilement il suffit de modifier la valeur attaché a sleep.

    PS oublis pas de cliquer sur résolu quand tu a eu la réponse que tu attends
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse, je ne connaissais pas la fonction sleep.

    Mais en fait, je ne me suis pas tres bien exprimé, je vous prie de m'excuser...

    C'est cela que je souhaite faire:

    "il y a actuellement machins, soit 'le nombre inscrit et qui défile, divisé par ma constante X' par membre.

    Avec à la place de mon gif animé, un nombre qui s'autoincrémente à une vitesse déterminée grace à une fonction php...

    Merci :-)

  6. #6
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    c'est en gros ce que palca t'a monté comme code.

    Tu dois juste le mettre a ta sauce
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Pourquoi tu veux afficher ce compteur, dans la pratique ?
    Parce que si l'incrémentation doit s'afficher côté client, autant utiliser du javascript.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Oui, en fait je vois bien que je tourne autour du pot mais que c'est quasiment ça.

    Mon seul hic, c'est que ça affiche

    1 - 0.33
    2 - 0.67
    3 - 1
    4 - 1.33
    5 - 1.67
    6 - 2
    7 - 2.33
    8 - 2.67
    9 - 3

    C'est tout à fait ce que je veux, mais mal agencé... En fait, je souhaite qu'il n'y ait l'équivalent que d'une seule ligne qui s'affiche et qu'elle se "rafraichisse" toute seul selon le sleep, ce qui ferait comme sur le compteur de mon gif.

    Apres, la mise en forme et le texte à insérer, aucun souci ;-)
    merci

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    C'est donc bien du javascript qu'il te faut.
    Ce code fait exactement la même chose que mon précédent code en php :
    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
    <html>
    <head>
    <script type="text/javascript">
    var i=1;
    var iMax=9;
    var x=3;
     
    function incremente()
    {
    	document.getElementById("afficheI").innerHTML = i;
    	document.getElementById("afficheRes").innerHTML = Math.round((i/x)*100)/100;
    	if (i < iMax) i++;
    	setTimeout("incremente()", 1000);
    }
     
    window.onload = incremente;
    </script>
    </head>
    <body>
    <p><span id="afficheI"></span> - <span id="afficheRes"></span></p>
    </body>
    </html>

  10. #10
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    sinon tu passe par AJAX

    tu incremente ta variable, l'affiche a un lieu donné (genre document.getElementById)
    et tu rafraichis toutes les secondes
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  11. #11
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Tien voila le tuto qui va avec au cas ou

    http://javascript.developpez.com/cours/#ajax
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  12. #12
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    A sorry Palca j'avais pas vu ton post

    Bon bin tu a ta réponse Palca est décidément plus rapide et meilleur que moi

    Oublis pas de cliquer sur résolu des que tu a les réponses qu'il te faut
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci Palca, merci Ein-Leser.
    Bon, je suis un peu rassuré que ça ne se fasse pas en php, je ne voyais pas comment.

    Je me suis penché sur le script javascript qui me plait vraiment bien. J'ai par le passé fait un peu de javascript et jamais d'ajax, d'où mon choix.
    Je l'ai arrangé à ma sauce, il marche nickel!

    Mais il y a un point auquel je n'avais pas pensé (grrrrrrrr): c'est une sorte de compteur perpétuel... si qqn repasse sur le site 10 minutes plus tard, il doit trouver le compteur incrémenté.
    Or, en partant avec une variable fixée à 1 ou ce qu'on veut, chaque fois que le visiteur revient sur la page, ça repart de la variable initiale...

    C'est mon dernier souci, je ne vous embete plus apres, promis ;-)
    Autant jusque là tout me semblait facilement faisable, autant là je ne vois pas comment faire que ce soit un compteur pleinement indépendant qui continue de tourner en permanence... Si vous avez une astuce...

  14. #14
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    La va falloir t'expliquer un peux plus

    tu veux qu'il tourne en permanence?
    Tu veux un compteur par user ou un pour tous?

    si c'est un par user doit il s'arrêter quand l'user part pour reprendre quand il revient?
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  15. #15
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Par contre j'ai bien peur pour toi qu'il va falloir le faire en php quand même dans ce cas car que sa soit en permanence ou pas il va falloir faire tourner sa sur le serveur.
    Et pour faire bosser le serveur faut utiliser php
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci Ein-leser

    En fait, oui, je veux faire tourner mon compteur en permanence. Et un seul compteur pour le site et non pas un par user.

    Mais alors là, je suis reperdu... comment le langage php peut-il faire tourner cela?

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Si ton compteur tourne en permanence, c'est que tu connais son moment de départ, donc tu peux faire :
    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
    <html>
    <head>
    <script type="text/javascript">
    <?php
     
    $timeDep = mktime(0, 0, 1, 1, 1, 2009);
    echo "var i = ". (time()-$timeDep) .";";
     
    ?>
    var x = 3;
     
    function incremente()
    {
    	document.getElementById("afficheI").innerHTML = i;
    	document.getElementById("afficheRes").innerHTML = Math.round((i/x)*100)/100;
    	i++;
    	setTimeout("incremente()", 1000);
    }
     
    window.onload = incremente;
    </script>
    </head>
    <body>
    <p><span id="afficheI"></span> - <span id="afficheRes"></span></p>
    </body>
    </html>
    Ainsi il sera commun à tous (heure serveur) et incrémenté à l'infini côté client.

  18. #18
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Oui passer par un timestamp simplement sera le moyen le plus facile et se te permettra d'utiliser moins de ressources pour sa
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Un merci sincère pour votre aide.
    Je vous prie de m'excuser de ne vous l'adresser que maintenant mais j'ai eu bcp de travail et je ne me suis pas repenché sur le script depuis.

    Je suis quasiment totalement satisfait du script, j'aurais une toute dernière touche de finition à apporter sur la partie:


    document.getElementById("afficheI").innerHTML = i;
    document.getElementById("afficheRes").innerHTML = Math.round((i/x)*100)/100;
    i++;

    En fait, j'aurais souhaité (oui, je sais, je commence à devenir pénible^^), plutot que d'arrondir avec le math.round, mettre une précision de 2 chiffres apres la virgule...

    j'ai trouvé des infos sur
    http://javascript.developpez.com/faq...ript#NBDecimal

    J'ai essayé de bidouiller pas mal mais rien n'y fait... Auriez vous la derniere clé de mon problème?
    Merci

  20. #20
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    N'oublies pas de cliquer sur résolu quand tu a eu la réponse qu'il te faillais
    Spécialiste des questions bêtes

    ”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein

    Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Mise à jour instantanée du résultat d'une macro
    Par martinmacfly dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/12/2009, 17h25
  2. Problême de compteur incrémental
    Par boettez dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 08/10/2009, 17h56
  3. Compteur incrémenté automatiquement
    Par mutley dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/06/2009, 10h40
  4. ORDER_BY - Diviser colonnes - 0=<Résultat=<1
    Par bestdomdom dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/06/2008, 15h14
  5. compteur d'enregistrement en instantané
    Par aimejielle dans le forum Access
    Réponses: 1
    Dernier message: 04/06/2006, 23h05

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