Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 08/03/2010, 16h19   #1
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Par défaut Problème différenciation entre valeur null et zéro

Bonjour ,

J'ai une table note definie de cette manière :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE note
(
IdEtudiant VARCHAR(20) NOT NULL,
NomModule VARCHAR(20) NOT NULL,
NomFormation VARCHAR(20) NOT NULL,
DateFormation INT NOT NULL,
NumSemestre VARCHAR(5) NOT NULL,
PRIMARY KEY(IdEtudiant,NomModule,NomFormation,DateFormation,NumSemestre),
FOREIGN KEY (IdEtudiant) REFERENCES etudiant(IdEtudiant),
FOREIGN KEY (NomModule,NomFormation,DateFormation,NumSemestre) REFERENCES modules(NomModule,NomFormation,DateFormation,NumSemestre),
NoteExam float NOT NULL,
NoteTp float NOT NULL,
moy float NOT NULL 
);
Ce que je fait avec mon programme, c'est que je veux calculer la moy du module.
Ma formule est moy=(1/3) *NoteTp+(2/3)*NoteExam.
Sachant que je ne suis pas obligé de rentrer une note de tp, je fais la distinction en différents cas.
Mon pb est que mon programme n'arrive pas à faire la distinction entre un champ vide et une note égale à zéro.
Si qq sait comment contourner le pb, merci.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
$noteExam=parseInt($_POST['NOTEEXAMEN']);
$noteTP=parseInt($_POST['NOTETP']);
 
//Calcul de la moyenne du module
if ($noteExam==0 && $noteTP==0)
{
$moyennne=0;
}
 
elseif (empty($noteTP))
{
	$moyennne=$noteExam;
}
 
elseif ($noteTP==0)                         //Pb à ce niveau là 
{
$moyennne=(2/3)*$noteExam;
}
 
elseif ($noteExam==0)
{
$moyennne=(1/3)*$noteTP;
}
 
else
{
	$moyennne=(2/3)*$noteExam+(1/3)*$noteTP;
}

Dernière modification par sabotage ; 08/03/2010 à 16h31. Motif: Merci d'utiliser les balises [CODE] (bouton # de l'éditeur)
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2010, 16h44   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si tu dois tester un vrai zéro :
Par contre très logiquement il faut que ce test soit avant le test empty()
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 22h47.


 
 
 
 
Partenaires

Hébergement Web