Les calcul dans MySQL [Résolu]

Signaler
-
 Ibnomar -
Salut les doyens ! J’ai besoin de votre aide( ça devient de habitude maintenant ????????)
En fait , j’ai fait des bulletins d’élèves et sur ma bases de données j’ai comme Colonne :
Anglais Français Science HG Total.

on mets les notes comme :

Anglais        Français     Science    HG     Total 
10 6 11 4
12 7 16 19


Pour avoir le total pour chaque ligne , j’ai saisi le code suivant :

$resp=$bdd->query (‘SELECT *FROM bulletin’);
While  ($rx=$resp->fetch()) {$rx[‘total’] =$rx[‘anglais’] + $rx[‘francais’] + $rx[‘science’] + $rx[‘HG’]; 
$dix=$bdd->prepare(‘ UPDATE bulletin SET total=:toto’);
$dix->execute (array(“toto”=>$rx[‘total])); }


Le problème est que le calcul ne se fait pas sur toutes les lignes. Ces seulement le total de la dernière entrée qui s’affiche dans toutes les colonnes Total de toutes mes entrées. Aidez moi à construire ma boucle ????????????
Désolé de la qualité de la saisie

1 réponse

Messages postés
29784
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 octobre 2020
6 828
Bonjour,

Pourquoi faire tout cela, une seule instruction, sans variable intermédiaire, peut solutionner le problème :

UPDATE bulletin SET total=anglais+français+science+HG


Ça marche effectivement. Mais j’ai remarqué que lorsqu’une colonne est NULL( ce qu’il y’a par défaut sur ma table ) le calcul ne marche pas.
Messages postés
29784
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 octobre 2020
6 828 > Ibnomar
il faut que tu utilises la fonction ifnull() pour chacun des champs
>
Messages postés
29784
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 octobre 2020

S’il te plaît , comment utiliser la function ifnull dans mon cas ? De mon côté j’ai fait tout ce que je savais mais ça me renvoie une erreur : call to undefined function IFNULL()
Messages postés
29784
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 octobre 2020
6 828 > Ibnomar
il est indispensable de lire la doc mysql, et les exemples et d'effectuer des tests, des essais

la syntaxe dans ce cas consiste à remplacer les champs par IFNULL(anglais,0)
>
Messages postés
29784
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 octobre 2020

Mon problème est totalement résolu. Vous aviez raison , Il fallait simplement mettre total = ifnull(Anglais,0)+ifnull(français,0)+ifnull(science,0).
Merci pour le temps accordé ????????????