Page 1 sur 2
Booléen ???
Posté : 29 juin 2005, 16:49
par psaikopat
Bonjour a tous ou Re-Bonjour ,
Voila donc j'ai un champ "Affichage", ou j'aimerai mettre un booléen ! Je ne sais pas trop de quel type c'est ???
Autre question (j'en profite), Si j'ai dans mon code une checkbox!
Si il y a une croix, alors cela va mettre le booléen a 1 dans la base ! Si j'ai pas de croix le booléen va etre a 0 !!
Est-ce possible?
Posté : 29 juin 2005, 16:55
par mere-teresa
Utilise un ENUM
Posté : 29 juin 2005, 16:55
par ouckileou
il n'y a pas de booléen en MySQL (si c'est bien de ça que tu parles)
tu peux utiliser un TinyInt, que tu mettras à zéro ou 1
donc pour la deuxième question, tu mets défaut à zéro, sinon tu insère 1, et tu gères ça par ton interface
Posté : 29 juin 2005, 16:59
par psaikopat
[Résolu] Merci !
Posté : 29 juin 2005, 17:06
par mere-teresa
Apparemment, cela existe
source : http://www.nexen.net/docs/mysql/annotee ... erview.php
BIT
BOOL
BOOLEAN
Ce sont des synonymes de TINYINT(1) . Le synonyme BOOLEAN a été ajouté en version 4.1.0
Un type booléen complet, qui sera introduit pour être en accord avec la norme SQL-99.
Posté : 29 juin 2005, 17:07
par ouckileou
tiens un truc que je ne savais pas
il y a en fait un type Boolean depuis la version 4 mais...
BIT , BOOL , BOOLEAN
Ce sont des synonymes de TINYINT(1). Le synonyme BOOLEAN a été ajouté en version 4.1.0
Un type booléen complet, qui sera introduit pour être en accord avec la norme SQL-99.
=>
http://dev.mysql.com/doc/mysql/fr/numer ... rview.html
Posté : 29 juin 2005, 18:24
par fggdm
Salut,
Encore du pseudo typage. Pff !
Si on prend un tinyint(1) ça veut dire qu'on peut mettre 0, 1,... 9 et faire des bêtises. Comme dit plus haut sans véritable type boolean avec vrai ou faux et rien d'autre je préconise le type enum avec au choix 0 et 1 ou true et false comme ça il y a moins d'ambiguïté !
Posté : 29 juin 2005, 18:33
par Packman
Autre question (j'en profite), Si j'ai dans mon code une checkbox!
Si il y a une croix, alors cela va mettre le booléen a 1 dans la base ! Si j'ai pas de croix le booléen va etre a 0 !!
Si j'ai bien compris mes cours, une checkbox ne donnera pas de variable si elle n'est pas coché, et crééra une varaible portant le nom de la checkbox et ayant pour valeur la valeur de la checkbox.
Pour utiliser une checkbox, dans mon script d'analyse, je fait un if(!isset($mavar)){$mavar=0;} et ensuite je me retrouve avec 0 ou la valeur sir la checkbox est cochée
Posté : 29 juin 2005, 18:36
par fggdm
Salut,
Il faut utiliser le bouton radio pour un "oui ou non" si tu utilises des cases à cocher ça veut dire qu'on peut répondre oui ET non, imagine un peu une application pour un référendum avec des cases à cocher

Posté : 29 juin 2005, 19:00
par Packman
heu, je crois qu'il y a un malentendu là...
qui à parlé de oui ou de non ?
si c'est ce que tu as compris venant de ma part, je voulais dire :
"is coched" & "is pas coched" lol
savoir si ma checkbox est cochée ou pas, et le traiter correctement
Posté : 29 juin 2005, 19:09
par ouckileou
Salut,
Encore du pseudo typage. Pff !
Si on prend un tinyint(1) ça veut dire qu'on peut mettre 0, 1,... 9 et faire des bêtises. Comme dit plus haut sans véritable type boolean avec vrai ou faux et rien d'autre je préconise le type enum avec au choix 0 et 1 ou true et false comme ça il y a moins d'ambiguïté !
c'est vrai, avec ce tinyint on pourrait mettre n'importe quoi
mais il suffit de limiter les choix au niveau de l'interface (PHP a priori)
c'est pas au niveau de la base que tu valides les données
donc bon, un tinyint c'est pas si mal

Posté : 29 juin 2005, 19:32
par Packman
Songeons que l'on peux ajouter une entrée depuis PhpMyAdmin...
Donc il serait bon de fixer le problème directement dans MySQL
Posté : 29 juin 2005, 19:41
par fggdm
Si tu prends un SGBDR plus complet que MySQL comme PostgreSQL il y a une notion de typage assez forte avec même la possibilité de créer ses propres types et ce n'est pas par hasard. D'ailleurs chez MySQL, malgré leurs discours d'il y a quelques années, on prend la route d'un vrai SGBD avec les clefs étrangères, des nouveaux types, des sous-requêtes etc
Une donnée ne devrait pouvoir avoir qu'un seul type, là on est dans un cas où du côté applicatif c'est un booléen et du côté du SGBD c'est un entier ! Bonjour le mapping ! Ca veut dire qu' "en dur" - côté applicatif - ce qui vient de ce champ précis n'est pas un entier mais un booléen !
Sinon autant imaginer un SGBD avec un seul type de donnée

Posté : 29 juin 2005, 20:20
par Packman
pardonne mon ignorance, mais quel est le développé de SGBD ?
Posté : 29 juin 2005, 21:52
par fggdm
Pardonne mon incompréhension mais la question concerne qui et quoi exactement ?
Sinon pour le message sur les coched boxes tu n'as pas fais un hors-sujet, ta citation sort d'où ?