Champ TINYINT
Résolu/Fermé
JBennn
Messages postés
92
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
13 juin 2013
-
10 mai 2011 à 16:23
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 13 mai 2011 à 17:26
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 13 mai 2011 à 17:26
A voir également:
- Champ TINYINT
- Nous ne pouvons pas résumer ce champ avec somme ✓ - Forum Excel
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Champ lexical de village ✓ - Forum Études / Formation High-Tech
- Excel champ calculé avec condition - Forum Excel
- Access champ calculé conditionnel - Forum Logiciels
3 réponses
Blopette
Messages postés
315
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
3 octobre 2012
273
10 mai 2011 à 16:26
10 mai 2011 à 16:26
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...
JBennn
Messages postés
92
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
13 juin 2013
1
10 mai 2011 à 16:53
10 mai 2011 à 16:53
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>
??
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
13 mai 2011 à 17:26
13 mai 2011 à 17:26
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+
10 mai 2011 à 17:23
Modifié par Blopette le 11/05/2011 à 09:42
Quelque chose comme ça, je ne sais plus trop la syntaxe PHP.
11 mai 2011 à 18:16
12 mai 2011 à 11:38
12 mai 2011 à 17:10