Page 1 sur 3

Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:18
par seyco1
Bonjour je suis en train de créer une petite fonction pour mon site afin que ma fille puisse faire des maths tout en s'amusant :P
Sur ma page, php me retourne une erreur que je vous indique plus bas.
J'aurais besoin d'un petit coup de pouce svp.
Merci d'avance.
L'erreur.
Warning: Division by zero in

Ma fonction.
 function Calcul ($total_sucettes,$total_frites)
 {
   $resultat=($total_sucettes/$total_frites)*10);

    $requete_tp="SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'";
    if ($envoi_tp=mysql_query($requete_tp))
    {
      if ($data_tp=mysql_fetch_array($envoi_tp))
      mysql_free_result($envoi_tp);
    }
   return $resultat; 
  }

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:33
par ghost5922
Bonjour,

tu ne peu pas diviser par 0 donc faut verifier cette ligne
$resultat=($total_sucettes/$total_frites)*10);
comme ceci par exemple
if($total_frites>0){
$resultat=($total_sucettes/$total_frites)*10);
}
else{
$resultat=($total_sucettes*10);
}

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:47
par seyco1
Bonjour je vous remercie pour votre aide c'est sympas :)
Le souci exact c'est que je ne veut pas de division par 0 mais je pense plutôt avoir une erreur
dans le contenu de mes variables
$total_sucettes et $total_frites
qui doivent contenir des chiffres
que je récupère dans ma base de donnée.
Ou je fais fausse route ?
J'ai testé votre code je n'est plus d'erreur mais le résultat est 0.

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:49
par ghost5922
Re,

si c'est une erreur dans vos variables avant de faire appelle a la fonction faite un echo de vos variable

$total_sucettes
$total_frites

et donne nous le code de ou vous récupérez le résultat

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:56
par seyco1
Ma fonction est sur un fichier fonction.php et j'affiche le résultat sur une page html avec ce code.
Pour mes pages du site j'ai séparé le php du html.
$calcul=str_replace("[TP]",Calcul($total_sucettes/$total_frites),$calcul);

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 11:59
par Spols
Le code que tu as donné est équivalent à
 function Calcul ($total_sucettes,$total_frites)
 {
   $resultat=($total_sucettes/$total_frites)*10);
   return $resultat; 
  }
Donc il doit y avoir une erreur de conception de la fonction.

Donne nous tous le contexte globale et le but de ta fonction

EDIT

Tu appel une fonction qui demande 2 paramètres (total_sucettes et total_frites) mais tu ne lui en donne qu'un seul (la division de total_sucettes par total_frites)

On a toujours pas compris ce qu'est censé faire ta fonction

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:06
par seyco1
Ha oui désolé. Ma fonction dois calculer le nombre de sucettes divisé par le nombre de frites (c est stupide mais c'est pour une enfants de 7ans) :P

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:06
par ghost5922
Re,

$calcul=str_replace("[TP]",Calcul($total_sucettes/$total_frites),$calcul);
tu remplace [TP] par le retour de ta function si j'ai bien compris

mais pourquoi tu fais déjà un calcule si ta function est justement faite pour ca
$calcul=str_replace("[TP]",Calcul($total_sucettes/$total_frites),$calcul);
devient a mon avis
$calcul=str_replace("[TP]",Calcul($total_sucettes,$total_frites),$calcul);

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:10
par ghost5922
Il a aussi un souci
function Calcul ($total_sucettes,$total_frites)
 {
   $resultat=($total_sucettes/$total_frites)*10);

    $requete_tp="SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'";
    if ($envoi_tp=mysql_query($requete_tp))
    {
      if ($data_tp=mysql_fetch_array($envoi_tp))
      mysql_free_result($envoi_tp);
    }
   return $resultat; 
  }
pourquoi faire la requête dans ta fonction ?

car dans la fonction tu lui passe en paramètre $total_sucettes,$total_frites et tu fais un return du calcule ta requête n'est pas utile il faut plutôt faire ta requête avant l'appelle de fonction puis lui passe en paramètre les variables

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:17
par seyco1
Oui pour
$calcul=str_replace("[TP]",Calcul($total_sucettes,$total_frites),$calcul);
j'avais fais une erreur de frappe sur le forum mais c'est bien comme cela dans mon fichier php.
Je suis débutant je me dois de le préciser ^^.
Je n'est pas compris ton dernier message :s
pourquoi faire la requête dans ta fonction ?
Et bien j'ai toujours fais comme cela mais la sur ma fonction Calcul ça ne fonctionne pas. Je dois me tromper ou je ne suis pas logique ?

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:29
par ghost5922
Re,

ben que dois faire ta function calcule pour moi elle fait

un calcule $resultat=($total_sucettes/$total_frites)*10);

une requête dans le vent car tu fais un return $resultat;


normalement tu dois récupérer les deux variables envoyer a ta function avant donc sois par $_POST/$_GET ou via une requête

tu appelle ta function tu lui donne les paramétrés

elle te retourne le calcule

puis si en dessous tu veux faire cette requête

$requete_tp="SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'";

tu peux tu as toujours les informations et tu vas pouvoir récupéré les données

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:31
par Spols
D'où doit venir ton nombe de sucettes et de frites ?

Si cela vient de ton code php, ta requète ne sert à rien, si elles viennent de ta base de donnée, tu dois revoir ta requète et il est inutile de passer à ta fonction des variables vides

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:36
par seyco1
Pour ghost ==>Je fais bien évidemment ma requête pour récupérer sur ma table nouriture se que contient les champs sucettes et frites.
Je m’explique mal surement :cry:

Pour Spols ==> Dans mon code mes variables sont vides ?

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:43
par ghost5922
ok donc tu passe en paramètres les infos pour ta requête puis tu récupérés les infos pour le calcule ?

Re: Souci sur ma fonction qui divise par 0

Posté : 03 juin 2013, 12:44
par seyco1
ok donc tu passe en paramètres les infos pour ta requête puis tu récupérés les infos pour le calcule ?
Oui c'est exactement ca ;)