[PHP] Probleme calcul par tranches

Résolu/Fermé
maxland - 11 juil. 2009 à 10:30
 maxland - 11 juil. 2009 à 11:06
Bonjour a tous,
j'ai un probleme avec une fonction de calcul par tranches qui s'arrete a la premiere tranche.

j'ai limpression que ma variable est egale a 0 alors quelle est affichée plus haut dans ma page :s

voici mon code :

function calcul_frais()
{
//$poids = intval($poids);

if ($poids <= 1000)
{
return 5;
}
else 
{	
if ($poids > 1000 && $poids <= 2000 )
{
return 6;
}
else 
{
if ($poids > 2000 && $poids <= 3000 )
{
return 7;
}
else 
{	
if ($poids > 3000 && $poids <= 5000 )
{
return 8.5;
}
else 
{	
if ($poids > 5000 && $poids <= 7000 )
{
return 9.5;
}
else 
{
if ($poids > 7000 && $poids <= 10000 )
{
return 11;
}
else 
{
if ($poids > 10000 )
{
return "autre";
}
}
}
}
}
}
}
		
}


exemple : si le poids total est egal 1800 (qui est plus grand que 1000 mais plus petit que 2000) la fonction doit afficher 6, mais là elle n'affiche toujours que la premiere valeur, 5 donc.

j'ai remplacé la variable $poids par 1800 et la fonction marche parfaitement (elle affiche bien 6).
en commentaire j'ai mis la conversion en entier grace a intval() mais ca ne fonctionne pas.

voila je vous remercies d'avance et a tres bientot,
maxland
A voir également:

3 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
11 juil. 2009 à 10:54
ta variable $poids est en effet bien égale à 0 !

en effet, à part si elles sont définies en globales, les variables sont locales aux fonctions

remplace ta premiere ligne par

function calcul_frais($poids)


et quand tu appelles ta fonction, fais aussi calcul_frais($poids)
1
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
11 juil. 2009 à 10:55
bonjour,

ceci fonctionne bien chez moi :
<?php
function frais($poids){
if ($poids <= 1000)
{
return 5;
}
else
{
if ($poids > 1000 && $poids <= 2000 )
{
return 6;
}
else
{
if ($poids > 2000 && $poids <= 3000 )
{
return 7;
}
else
{
if ($poids > 3000 && $poids <= 5000 )
{
return 8.5;
}
else
{
if ($poids > 5000 && $poids <= 7000 )
{
return 9.5;
}
else
{
if ($poids > 7000 && $poids <= 10000 )
{
return 11;
}
else
{
if ($poids > 10000 )
{
return "autre";
}
}
}
}
}
}
}
}
//------------------------------------
$poids=2300;
echo $poids."<br>";
$poids = intval($poids);
echo $poids."<br>";
$r= frais($poids);
echo $r;
?>
1
pfff !

je suis trop bidon !

merci les gars, reponses rapides et efficaces, vous etes super !
0