Champ TINYINT
Résolu
JBennn
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
mpmp93 Messages postés 6648 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voila j'ai un formulaire sur mon site avec un champ "connaitre" de type TINYINT avec deux boutons de radios ( Oui ou non )
Je voudrai savoir comment faire prendre la valeur 1 pour "oui" et la valeur 0 pour "non" par exemple. Car la dans ma table le champ connaitre prend toujours 0 donc je ne m'y retrouve pas :s
Je sais pas si c'est assez clair mais pouvez-vous m'aider ? lol svp
Alors voila j'ai un formulaire sur mon site avec un champ "connaitre" de type TINYINT avec deux boutons de radios ( Oui ou non )
Je voudrai savoir comment faire prendre la valeur 1 pour "oui" et la valeur 0 pour "non" par exemple. Car la dans ma table le champ connaitre prend toujours 0 donc je ne m'y retrouve pas :s
Je sais pas si c'est assez clair mais pouvez-vous m'aider ? lol svp
A voir également:
- Champ TINYINT
- Champ lexical de village ✓ - Forum Études / Formation High-Tech
- Excel champ calculé avec condition - Forum Excel
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Tableau croisé, fonction SI dans un calcul ✓ - Forum Excel
- Désolé nous ne pouvons pas résumer ce champ avec somme ✓ - Forum Excel
3 réponses
Bonjour,
Avant d'insérer la valeur de ton bouton radio dans la base de données, tu fais un test :
Ou alors j'ai mal compris...
Avant d'insérer la valeur de ton bouton radio dans la base de données, tu fais un test :
si val=oui alors insérer 0 sinon insérer 1
Ou alors j'ai mal compris...
D'accord et est-ce que tu sais ou je dois placer le si dans ce code :
??
<html> <head> <title> TP PHP</title> </head> <body> <?php if(!isset($_POST['nom'])) { echo ' erreur : nom'; } if(!isset($_POST['prenom'])) { echo ' erreur : prenom'; } if(!isset($_POST['adresse'])) { echo ' erreur : adresse'; } if(!isset($_POST['pseudo'])) { echo ' erreur : pseudo'; } if(!isset($_POST['pass'])) { echo ' erreur : pass'; } if(!isset($_POST['connaitre'])) { echo ' erreur : connaitre'; } else{ $Nom=$_POST["nom"]; $Prenom=$_POST["prenom"]; $Adresse=$_POST["adresse"]; $Pseudo=$_POST["pseudo"]; $Mdp=$_POST["pass"]; $Connaitre=$_POST["connaitre"]; // Connexion au serveur MySQL $db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); // Connexion à la base devillersbdd mysql_select_db("devillersbdd",$db)or die ("Erreur de connexion à la base devillersbdd"); // Requête Ajout de la personne créé dans le formulaire $MonSql="INSERT INTO inscription(Nom, Prenom, Adresse, Pseudo, Mdp, Connaitre) VALUES('$Nom','$Prenom','$Adresse','$Pseudo','$Mdp','$Connaitre')"; // Envoie de la requête mysql_query($MonSql); // Fermeture de la connexion mysql_close($db); // Message de confirmation echo("Votre inscription est bien enregistrée. <br />"); } ?> </body> </html>
??
Bonjour,
je vous propose une solution bien plus mieux. Au lieu de choisir un TINYINT, choisissez le type ENUM: dans les valeurs de ENUM, vous mettez
Ca ne mange que 1 octet.
Le champ de type ENUM gère une association clé-valeur qui est transparente:
SELECT DISTINCT connaitre FROM matable
affiche:
oui
non
SELECT DISTINCT connaitre+0 FROM matable
affiche:
0
1
L'intérêt du champ ENUM devient intéressant quand on a une collection limitée et fixe d'items mais de taille variable. Exemple, la liste des jours de la semaine:
'lundi', 'mardi'.....'dimanche'
Quelque soit la taille d'une valeur, elle occupera TOUJOURS un octet tant que le nombre d'items ne dépasse pas 255. Je parle du nombre de combinaisons possibles pour un même champ ENUM et non d'enregistrements dans votre table.
Reprenons votre cas avec 'oui','non'
Admettons que vous vouliez rajouter un état 'en attente', vous éditez la structure de votre table, vous rajoutez une clé-valeur 'en attente' et vous pourrez insérer un troisième état. Même si 'en attente' s'affiche sur 10 caractères, la valeur prise en base de données ne sera que de 1 octets!!!
Donc, dans votre formulaire HTML, il vous suffit d'écrire la valeur 'Oui' ou 'Non' et la transmettre au script PHP sans avoir jamais besoin de la traduire en 0 ou 1 ou toute autre valeur.
A+
je vous propose une solution bien plus mieux. Au lieu de choisir un TINYINT, choisissez le type ENUM: dans les valeurs de ENUM, vous mettez
'Oui','Non'
Ca ne mange que 1 octet.
Le champ de type ENUM gère une association clé-valeur qui est transparente:
SELECT DISTINCT connaitre FROM matable
affiche:
oui
non
SELECT DISTINCT connaitre+0 FROM matable
affiche:
0
1
L'intérêt du champ ENUM devient intéressant quand on a une collection limitée et fixe d'items mais de taille variable. Exemple, la liste des jours de la semaine:
'lundi', 'mardi'.....'dimanche'
Quelque soit la taille d'une valeur, elle occupera TOUJOURS un octet tant que le nombre d'items ne dépasse pas 255. Je parle du nombre de combinaisons possibles pour un même champ ENUM et non d'enregistrements dans votre table.
Reprenons votre cas avec 'oui','non'
Admettons que vous vouliez rajouter un état 'en attente', vous éditez la structure de votre table, vous rajoutez une clé-valeur 'en attente' et vous pourrez insérer un troisième état. Même si 'en attente' s'affiche sur 10 caractères, la valeur prise en base de données ne sera que de 1 octets!!!
Donc, dans votre formulaire HTML, il vous suffit d'écrire la valeur 'Oui' ou 'Non' et la transmettre au script PHP sans avoir jamais besoin de la traduire en 0 ou 1 ou toute autre valeur.
A+
Quelque chose comme ça, je ne sais plus trop la syntaxe PHP.