Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 30/07/2007, 19h53   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 22h26   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
rajoute le code suivant à l'endroit qui affiche les nombres
comme ça tu verras quels fichiers sont appelés et à quels lignes :
Code :
1
2
3
echo '<pre>';
print_r(debug_backtrace());
echo '</pre>';
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 15h07   #3
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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 :
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 :
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 18h45   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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"
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 21h25   #5
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23
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 :
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 :
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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 22h08   #6
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h17   #7
Membre à l'essai
 
Inscription : mai 2007
Messages : 146
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 146
Points : 23
Points : 23

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
divad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h16.


 
 
 
 
Partenaires

Hébergement Web