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

Signaler
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2010
-
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2010
-
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

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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 ?

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2010

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
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
vais peut etre dire un betise mais

tu peux concatener '00'

qui sera different de '  '

??
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2010

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
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

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Ou alors, tu forces le passage en int :

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

Et la t'as ton entier :)
Messages postés
57
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
30 janvier 2010

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