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 :

Affichage en double incompréhensible


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut Affichage en double incompréhensible
    B'jour!

    Je me tourne vers vous car j'ai un problème bien obscure...

    En effet je fais un petit site internet avec des templates. Je me sers du tuto dispo sur ce site pour les utiliser.

    En gros le site permet d'afficher des économies que j'ai effectuées en arretant de fumer et le nombre de cigarettes non fumées.

    Pour faire ces calculs, je me base sur des calculs avec des constantes et le timestamp (et accessoirement sur une fonction qui me permet d'obtenir un arrondi, mais le probleme est présent avec ou sans cette fonction).

    Le probleme est que le résultat s'affiche en double... alors que je suis bien "certain" de ne pas avoir demandé 2 fois un affichage. De plus, la valeur qui est donnée en double a toujours un arrondi à 3 décimales, et ce, que je demande un arrondi à 0,1,2,3,4 ou 5 décimales du résultat....

    Pour vous donner une idée, vous pouvez regarder là, avec Firefox (j'ai pas encore touché au CSS pour IE). Ya des bugs autour, mais je développe en local, j'ai pas uppé tous les fichiers: http://divad10.free.fr/

    Je ne peux pas vous donner tout mon code source, parcequ'il commence à être conséquent et que ça ferait un peu trop, ici. Donc je ne vous demande évidement pas de réponse précise, mais des pistes de recherches de résolution (ou de dissimulation ) du bug...

    Merci à tous de m'avoir lu Bien entendu, si je n'ai pas été assez clair, hésitez pas à poser des questions!

    Bonne soirée!

    David

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 327
    Points : 15 670
    Points
    15 670
    Par défaut
    rajoute le code suivant à l'endroit qui affiche les nombres
    comme ça tu verras quels fichiers sont appelés et à quels lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r(debug_backtrace());
    echo '</pre>';

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup de ta réponse!
    Cependant je ne parviens pas à l'exploiter.

    Pour afficher les deux valeurs, mes pages sont construites ainsi:

    Sur la page d'index.php j'ai une variable $economie et $nombre_cigarettes qui sont définies puis j'ai cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <!--La fonction arrondi est dans essai.php, à la racine du projet-->
    $vue->assign_vars(array(
    	'CIGARETTES' =>		arrondi($nombre_cigarettes,0),
    	'ECONOMIES' =>		arrondi($economies,0)
     
    ));
    Qui me permet de définir des variables que je pourrai utiliser dans mon template.

    Et j'ai l'affichage des valeurs, dans mon template economies.tpl, qui a la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		<img src="images/chaudronFixe.gif" title="Economies en Euros" alt="Chaudron"/>
    		<b>{ECONOMIES} Euros</b> <br/>
    		<img class="cigarette" src="images/cigaretteVertFoncee.jpg" title="Nombre de cigarettes non fumées" alt="Cigarette"/>
    		<b>{CIGARETTES} Cigarettes</b>
    Je ne parviens donc pas à afficher ce que tu me suggère. Je n'obtiens qu'un "array", vide.

    Merci encore de la réponse

    David

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 327
    Points : 15 670
    Points
    15 670
    Par défaut
    essaye déjà de mettre le code au dessus de "$vue->assign_vars ..."
    si tu n'obtiens rien de nouveau mets le dans le code de la fonction "arrondi"

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    mathieu, merci de la réponse.

    J'ai essayé de le mettre au dessus du assign_var mais le "array" retourné est vide.
    Je l'ai alors mis dans la fonction "arrondi" et voilà ce que j'ai obtenu:

    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
    Array
    (
        [0] => Array
            (
                [file] => D:\Programmation\SansTabac\index.php
                [line] => 36
                [function] => arrondi
                [args] => Array
                    (
                        [0] => 1878.29351852
                        [1] => 2
                    )
     
            )
     
    )
     
    Array
    (
        [0] => Array
            (
                [file] => D:\Programmation\SansTabac\index.php
                [line] => 37
                [function] => arrondi
                [args] => Array
                    (
                        [0] => 469.57337963
                        [1] => 2
                    )
     
            )
     
    )
    Je ne parviens pas vraiment à interpréter le résultat. La ligne "[1] => 2" correspond à la deuxieme variable, qui indique à combien de décimales la fonction doit arrondir la valeur.

    Je précise simplement que ma fonction, avec le bout de code ajouté, est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    			function arrondi($nombre,$n)
    			{
     
    echo '<pre>';
    print_r(debug_backtrace());
    echo '</pre>';
    			return trim(number_format($nombre,$n,".",""));
     
    			}
    Merci de m'aider à comprendre, en espérant que ça soit utile pour la résolution de mon problème

    Merci encore

    David

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 327
    Points : 15 670
    Points
    15 670
    Par défaut
    Citation Envoyé par divad
    en espérant que ça soit utile pour la résolution de mon problème
    oui et non
    maintenant on peut déjà voir qu'au moment de l'affichage de "469.629" ça ne passe pas par la fonction "arrondi" donc ça ne va peut-être pas t'aider à trouver le code intrus

    par contre je viens de remarquer quelque chose dans le code qui affiche le bon nombre il y a l'image "cigaretteVertFoncee.jpg" et dans le code en trop il y a l'image "cigaretteVerte.jpg" donc cherche cette chaine de caractères dans tes fichiers pour remonter la piste

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut

    Mouarf, désolé... j'avais un bout de code en double, dans un autre fichier, qui passait par la fonction arrondi, à 2 ou 3 décimales selon la valeur

    Désolé, et merci de ton aide

    Ca va, j'ai pas trop honte sinon

    Citation Envoyé par divad

    Le probleme est que le résultat s'affiche en double... alors que je suis bien "certain" de ne pas avoir demandé 2 fois un affichage.
    Heureusement que j'avais pris mes précautions sur le "certain"

    En tout cas beaucoup!

    Bonne journée!

    David

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de buffer d'image : affichage en double
    Par Moussy dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 31/01/2010, 22h47
  2. Probleme affichage des double
    Par pyth35 dans le forum Composants
    Réponses: 3
    Dernier message: 27/08/2009, 15h43
  3. [Tableaux] affichage en double
    Par mali_67 dans le forum Langage
    Réponses: 4
    Dernier message: 22/02/2008, 14h10
  4. Réponses: 2
    Dernier message: 10/09/2006, 12h35
  5. Affichage long double
    Par slate dans le forum C++
    Réponses: 5
    Dernier message: 07/02/2006, 18h04

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