Différencier NULL du 0 heeeeelp [Résolu]

Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Dernière intervention
30 janvier 2010
- - Dernière réponse : D1stort1on
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Dernière intervention
30 janvier 2010
- 27 avril 2006 à 12:28
Salut,

Voilà mon soucis, je suis en train de réaliser une petite application pour la gestion d'un tournoi de foot.

Les administrateurs peuvent ajouter les résultats du match, mon soucis est que lors de l'ajout du résultat, mon code attribue les points selon le résultat...

Ce qui fait que j'ai décidé qu'une fois le résultat ajouté, les admin ne peuvent pas modifier le score.

Ce que je n'arrive pas à faire c'est que sur la page ou les admins ajouteront le score, si le score n'a pas encore été entré, il y a le formulaire qui apparait, une fois le score ajouté, je check si le résultat contient qqc, si oui je masque le formulaire pour n'afficher que le résultat.

Seulement si le score est de 0 à 0, le formulaire s'affichera quand même

Merci d'avance
Yves
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
12
3
Merci
Salut,

utilise isset() pour tester si tes variables existent, ensuite le is_int ça va surement renvoyer FALSE, car les $_POST sont des strings, utilise plutôt ctype_digit() ou is_numeric()

Ensuite sinon tu n'as pas mis de valeur par défaut pour tes champs MySQL ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 88 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Anthomicro
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
31
0
Merci
Hello,

faudrait déjà savoir de quoi tu parles : php, sql?
D'où sortent ces scores!
Bref, en php : is_int () renverra true pour 0. Mais pas true pour 'rien'.
is_null () renverra trrue pour 'null', mais pas pour 0.
Joue avec types...!
En sql, tu peux n'afficher que les scores où il n'y a pas de score :
WHERE score IS NULL par exemple, si ton champ autorise les nulls.

Chais pas, on manque d'infos.
Commenter la réponse de malalam
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Dernière intervention
30 janvier 2010
0
Merci
Merci pour ta réponse,

Il n'est pas toujours facile de donner les bonnes infos quand on est amateur

C'est très certainement une de tes infos qu'il me faut mais je ne suis pas sur de l'utilisation alors voilà un peu plus d'infos:

J'extrait les données de ma base, les scores sont dans un champ smallint qui autorise le null
En suite quand j'affiche:

if (monChampEstVide($val_mat['matche_but_1'])) { //la je ne sais pas quoi mettre pour différencier le 0 du NULL
 echo "là j'affiche mon formulaire d'ajout du score";
}
else {
 echo "là j'affiche le score";
}

D1stort1on
Commenter la réponse de D1stort1on
Messages postés
1218
Date d'inscription
mardi 20 décembre 2005
Dernière intervention
18 octobre 2012
4
0
Merci
vais peut etre dire un betise mais

tu peux concatener '00'

qui sera different de '  '

??
Commenter la réponse de sidf
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Dernière intervention
30 janvier 2010
0
Merci
Hello,

En fait maintenant j'ai mis ca:

if ( (is_null($val_mat['matche_but_1'])) ) {

mon formulaire

}

else {

mon résultat

}

et maintenant ca fonctionne.
 --------------------------------------------------------------------------

Pour ce qui est de l'ajout à la bdd du score par le formulaire, j'ai cette verif:

if (!is_int($_POST['match_but_1']) and !is_int($_POST['match_but_2'])) {

mon ajout

}

seul soucis c'est que les ajouts sont ok mais si j'envoie le formulaire avec les 2 champs vides... ben y prend 0 et 0 comme valeur, qu'est-ce que je fais faux???

Merci bonne nuit
Commenter la réponse de D1stort1on
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
33
0
Merci
Salut,

utilise un === pour différentier NULL de 0:

if (0===NULL){
echo 'texte jamais affiché';
}

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Commenter la réponse de coucou747
Messages postés
2368
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
18 avril 2015
3
0
Merci
Ou alors, tu forces le passage en int :

$var = (int) $_POST['var'];

Et la t'as ton entier :)
Commenter la réponse de FhX
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Dernière intervention
30 janvier 2010
0
Merci
Merci beaucoup, vous m'avez sauvé

en premier le teste avec le isset()
et après avec le is_numeric()

Le résultat est le bon héhé.

Encore merci @+

D1stort1on
Commenter la réponse de D1stort1on

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.