[RESOLU] Souci sur ma fonction qui divise par 0

Eléphanteau du PHP | 20 Messages

03 juin 2013, 11:18

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; 
  }

Mammouth du PHP | 619 Messages

03 juin 2013, 11:33

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);
}

Eléphanteau du PHP | 20 Messages

03 juin 2013, 11:47

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.

Mammouth du PHP | 619 Messages

03 juin 2013, 11:49

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

Eléphanteau du PHP | 20 Messages

03 juin 2013, 11:56

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);

Mammouth du PHP | 1967 Messages

03 juin 2013, 11:59

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
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 20 Messages

03 juin 2013, 12:06

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

Mammouth du PHP | 619 Messages

03 juin 2013, 12:06

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);

Mammouth du PHP | 619 Messages

03 juin 2013, 12:10

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

Eléphanteau du PHP | 20 Messages

03 juin 2013, 12:17

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 ?

Mammouth du PHP | 619 Messages

03 juin 2013, 12:29

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

Mammouth du PHP | 1967 Messages

03 juin 2013, 12:31

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
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 20 Messages

03 juin 2013, 12:36

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 ?

Mammouth du PHP | 619 Messages

03 juin 2013, 12:43

ok donc tu passe en paramètres les infos pour ta requête puis tu récupérés les infos pour le calcule ?

Eléphanteau du PHP | 20 Messages

03 juin 2013, 12:44

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 ;)