[RESOLU] Souci sur ma fonction qui divise par 0

Mammouth du PHP | 619 Messages

03 juin 2013, 12:58

Ok alors c'est plutot quelque chose comme ca

pas tester et a modifie selon tes champs et ta requetes
<?php
function Calcul ($total_sucettes,$total_frites)
 {
    $requete_tp=mysql_query("SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'");
    if (!$requete_tp) {
		echo 'Impossible d\'exécuter la requête : ' . mysql_error();
	   exit;
	}
	$row = mysql_fetch_assoc($requete_tp);
	mysql_free_result($requete_tp);
	
	$resultat=$row['total_sucettes']/$row['total_frites']*10;
   	return $resultat; 
}
 
?>

Eléphanteau du PHP | 20 Messages

03 juin 2013, 13:08

Merci je viens de mettre le code en ligne toujours se souci de division par 0 #-o

Mammouth du PHP | 619 Messages

03 juin 2013, 13:25

ok fait un print_r($row); pour voir si tu récupère bien un chiffre supérieur a 0
<?php
function Calcul ($total_sucettes,$total_frites)
 {
    $requete_tp=mysql_query("SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'");
    if (!$requete_tp) {
                echo 'Impossible d\'exécuter la requête : ' . mysql_error();
           exit;
        }
        $row = mysql_fetch_assoc($requete_tp);
        mysql_free_result($requete_tp);
         print_r($row);
        $resultat=$row['total_sucettes']/$row['total_frites']*10;
        return $resultat; 
}
 
?>
 

Mammouth du PHP | 1967 Messages

03 juin 2013, 13:26

c'est que tu as un total_frites égal à 0 quelque part, soit cela ne devrait jamais arriver soit tu dois faire une exception pour ce cas là
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, 13:31

Toujours cette erreur qui correspond à la ligne
$resultat=$row['total_sucettes']/$row['total_frites']*10;

Mammouth du PHP | 619 Messages

03 juin 2013, 13:35

que donne le print_r() ? déjà voir si tu récupère bien tes données

Eléphanteau du PHP | 20 Messages

03 juin 2013, 13:41

Avec mon replace cela m’écris le chiffre 0
$calcul=str_replace("[TP]",Calcul($total_sucettes,$total_frites),$calcul);

Mammouth du PHP | 619 Messages

03 juin 2013, 13:47

fais un print_r($row);
et appelle ta fonction simplement Calcul($total_sucettes,$total_frites); sans le replace

Eléphanteau du PHP | 20 Messages

03 juin 2013, 13:54

fais un print_r($row);
et appelle ta fonction simplement Calcul($total_sucettes,$total_frites); sans le replace
Pareil toujours 0.

Mammouth du PHP | 619 Messages

03 juin 2013, 14:00

ok essaie de mettre ta requête dans phpmyadmin

SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'

remplace bien tes variables par des infos en dur

Eléphanteau du PHP | 20 Messages

03 juin 2013, 14:13

Alors je sais pas si je vais bien répondre à ta demande mais avec le code de départ en mettant des valeurs en dur a la place de mes variables j'obtient bien 50 ce qui est totalement juste.
C'est peut êtres normal aussi je sais pas trop.

J'ai testé dans php my admin ya aucun souci de requête.
 function Calcul ($total_sucettes,$total_frites)
				{
					$resultat=(10/2)*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, 14:18

remplace ta function par la mienne :)

Eléphanteau du PHP | 20 Messages

03 juin 2013, 14:26

remplace ta function par la mienne :)
J'obtient toujours comme résultat 0 :twisted: et aussi

Code : Tout sélectionner

Division by zero in

Mammouth du PHP | 1967 Messages

03 juin 2013, 14:28

Donne nous ton code en entier et le contenu de ta base de donnée sinon on avanceras qu'à l'aveuglette
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, 14:41

Oki.

Dans mon dossier includes j'ai un fichier fonction_site.php cest la dedant que je met toutes mes fonctions dont celle ci.
function Calcul ($total_sucettes,$total_frites)
 {
    $requete_tp=mysql_query("SELECT * FROM nouriture WHERE total_sucettes='$total_sucettes' AND total_frites='$total_frites'");
    if (!$requete_tp) {
                echo 'Impossible d\'exécuter la requête : ' . mysql_error();
           exit;
        }
        $row = mysql_fetch_assoc($requete_tp);
        mysql_free_result($requete_tp);
        $resultat=$row['total_sucettes']/$row['total_frites']*10;
        return $resultat; 
}
Ensuite j'ai un répertoire web ou je met mon php.
				$html=file_mots(url("REP")."/web/html/test.html");
				$html=str_replace("[TP]",Calcul($total_sucettes,$total_frites),$html);
				$HTML.=$html;
Puis comme tu peut le voir je retranscrit tout sur un fichier html qui se trouve dans un répertoire nommé html.
Pour la base de donnée c 'est une table nouriture et deux champs ==> total_sucettes et total_frites.