Bonsoir,svp j'ai une formule à calculer et je suis sur d'elle mais le résultats est toujours fausse je c pas ou est le probleme exactement.
voila la formule:$score=( ($coef1$p['moy1'])+($coef2$p['moy2'])+ ($coef3$p['moy3'])+ ($coefbac$moybac)-(2$nbratt) )(1-(0.1*$nbred));
exemple: si coef1=1.5 coef2=2 coef3=1 coefbac=1 nbratt=2 nbred=0 moy1=10 moy2=10 moy3=11 et moybac=14
mon code me donne comme résultat=54 par contre c'est bien 56,
avec les coef sélectionner de la base et les informations aussi.
le résultat manque toujours 2. svp pouvez vous m'aider?

14 réponses


Bonsoir, il ne manque pas quelque chose entre tes 2 grosses parenthèses ? et aussi entre "0.1$nbred" ?

sirine
Auteur

$score=( ($coef1$p['moy1'])+($coef2$p['moy2'])+ ($coef3$p['moy3'])+ ($coefbac$moybac)-(2$nbratt) ) (1-(0.1 * $nbred));
faute de frappe mais c'est ce que j'ai écrit dans mon code

As-tu essayé d'afficher les valeurs avant le calcul et vérifier que c'est bien les bonnes valeurs ?

sirine
Auteur

justement je sais pas comment je peux les afficher pour les vérifier pouvez vous me dire comment svp?

Par exemple,

var_dump($p, $coef1, $coef2, $coef3, $coefbac, $moybac, $nbratt, $nbred);

Tu peux aussi faire des simples "echo"

sirine
Auteur

Et ou ils seront m'afficher?

Sur la page en question

sirine
Auteur

il m'affiche rien,le score s'ajoute directement à la base sans etre afficher

Tu peux essayer :

var_dump($p, $coef1, $coef2, $coef3, $coefbac, $moybac, $nbratt, $nbred);
$score=( ($coef1*$p['moy1'])+($coef2*$p['moy2'])+ ($coef3*$p['moy3'])+ ($coefbac*$moybac)-(2*$nbratt) ) * (1-(0.1 * $nbred));
exit();
sirine
Auteur

meme résultat :(

Si le "exit()" ne fonctionne pas ce que ton code ne passe pas par la.

sirine
Auteur

j'ai pas compris

skp, te dis seulement que si ton exit() ne fait pas le travail d'arrêter le script juste après l'affichage, c'est surement car tu ne dois pas rentrer dans ta boucle (?), où tu effectues ton calcul ! Peut-être nous mettre plus de code, on sera mieux en mesure de t'aider !

sirine
Auteur

voila mon code, meme je le répete avec un autre choix de master (mpRITEL) avec des différents coeff et de différent formule j'obtient la meme résultat (54) :(
$choixma="select from candexttech";
$obj2=$c->query ($choixma);
if ($obj2->rowCount()==0)
return "impo " ; else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $choixma= $row["choix"];}
if ($choixma=='mpRITEL') {
$coef1="select
from coef_ritel ";
$obj2=$c->query($coef1); if ($obj2->rowCount()==0)
return "impo " ; else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $coef1= $row["coef_moy_1a"];}

$coef2="select * from coef_ritel ";
$obj2=$c->query($coef2); if ($obj2->rowCount()==0)
return "impo " ;else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $coef2= $row["coef_moy_2a"];}

$coef3="select * from coef_ritel ";
$obj2=$c->query($coef3); if ($obj2->rowCount()==0)
return "impo " ;else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $coef3= $row["coef_moy_3a"];}

$moybac="select * from candexttech ";
$obj2=$c->query($moybac); if ($obj2->rowCount()==0)
return "impo " ; else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $moybac= $row["moy_b"];}

$coefbac="select * from coef_ritel ";
$obj2=$c->query($coefbac); if ($obj2->rowCount()==0)
return "impo " ;else { $row=$obj2->fetch(PDO ::FETCH_ASSOC); $coefbac= $row["coef_bac"];}

$nbratt=$p['ratt1']+$p['ratt2']+$p['ratt3'];
$nbred=$p['redoub1']+$p['redoub2']+$p['redoub3'];

$score=( ($coef1$p['moy1'])+($coef2$p['moy2'])+ ($coef3$p['moy3'])+ ($coefbac$moybac)-(2$nbratt) ) (1-(0.1 * $nbred));
var_dump($p, $coef1, $coef2, $coef3, $coefbac, $moybac, $nbratt, $nbred);
$tech="update candexttech SET score= '$score' where id_tech_ext='".$_SESSION["id_can"]."'" ;
if($c->query($tech)) {return "score ajoute avec succes";}else return "impossible score ";
}