Différencier NULL du 0 heeeeelp

Résolu
D1stort1on Messages postés 57 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 30 janvier 2010 - 26 avril 2006 à 19:16
D1stort1on Messages postés 57 Date d'inscription samedi 11 janvier 2003 Statut Membre 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
A voir également:

8 réponses

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

3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2006 à 19:29
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.
0
D1stort1on Messages postés 57 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 30 janvier 2010
26 avril 2006 à 20:37
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
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
26 avril 2006 à 20:39
vais peut etre dire un betise mais

tu peux concatener '00'

qui sera different de '  '

??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
D1stort1on Messages postés 57 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 30 janvier 2010
26 avril 2006 à 22:06
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
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 avril 2006 à 22:42
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

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

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

Et la t'as ton entier :)
0
D1stort1on Messages postés 57 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 30 janvier 2010
27 avril 2006 à 12:28
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
0
Rejoignez-nous