Comment stocker plusieurs checkbox
geekat
Messages postés
228
Date d'inscription
Statut
Membre
Dernière intervention
-
Dev1 -
Dev1 -
Bonjour,
J'ai réussi à insérer une liste de checkbox dans ma table. Je reconnais qu'insérer plusieurs valeurs dans un seul champ n'est pas très pratique, alors on m'a parlé d'une solution c'est de rajouter une table supplémentaire, ce qui fait que j'aurais une seule valeur par champ.
Le souci c'est que déjà, je ne comprends pas en quoi créer une table peut résoudre le problème, ensuite j'aimerais savoir si c'est le cas comment faire.
Exemple :
Nationalité : (2 valeurs)
- Française
- Étrangère
Cas 1 : Française
Cas 2 : Étrangère
Cas 3 : Française + Étrangère
Cas 4 : NULL.
Et j'ai une liste de pays, là je ne pourrais pas mettre tous les cas :P.
Quelle est la solution selon vous ?
J'ai réussi à insérer une liste de checkbox dans ma table. Je reconnais qu'insérer plusieurs valeurs dans un seul champ n'est pas très pratique, alors on m'a parlé d'une solution c'est de rajouter une table supplémentaire, ce qui fait que j'aurais une seule valeur par champ.
Le souci c'est que déjà, je ne comprends pas en quoi créer une table peut résoudre le problème, ensuite j'aimerais savoir si c'est le cas comment faire.
Exemple :
Nationalité : (2 valeurs)
- Française
- Étrangère
Cas 1 : Française
Cas 2 : Étrangère
Cas 3 : Française + Étrangère
Cas 4 : NULL.
Et j'ai une liste de pays, là je ne pourrais pas mettre tous les cas :P.
Quelle est la solution selon vous ?
A voir également:
- Quel composant d’un ordinateur a pour rôle de stocker les données (système d’exploitation, applications, fichiers, etc.) ?
- Ordinateur - Guide
- Restauration systeme windows 10 - Guide
- Comment réinitialiser un ordinateur - Guide
- Test composant pc - Guide
- Ordinateur qui rame - Guide
2 réponses
Bonjour geekat,
Je vous donne quelques adresses pour apprendre le sql.
http://www.1keydata.com/fr/sql/
http://sqlpro.developpez.com/cours/sqlaz/select/
http://www.w3schools.com/sql/default.asp
Après, je sais afficher dans un sélecte le contenu d'une table mais un checkbox je ne sais pas.
Sinon, il faut prévoir une ligne pour tous les cas possibles
Un exemple pour avoir la liste des éléments d'une table
Dans la page où vous voulez récupérer la donnée sélectinnée, il faudra mettre ceci
Je vous donne quelques adresses pour apprendre le sql.
http://www.1keydata.com/fr/sql/
http://sqlpro.developpez.com/cours/sqlaz/select/
http://www.w3schools.com/sql/default.asp
Après, je sais afficher dans un sélecte le contenu d'une table mais un checkbox je ne sais pas.
Sinon, il faut prévoir une ligne pour tous les cas possibles
Un exemple pour avoir la liste des éléments d'une table
echo "<form method='post' action='resultat.php'>\n";
echo "<center>";
echo "<table class=\"green\">";
echo "<tr><td>Client</td>";
echo "<td>";
//recuperation de la liste des clients
$query = "SELECT id_client, nom_client";
$query .= "FROM clients";
$query .= ";";
//echo "<br>query = $query <br>";
$result = execute_query($query);
//creation select avec liste des clients
echo "<select id='id_client' name='id_client'>";
while($row = mysql_fetch_array($result)) {
$id_client = $row[0];
$nom_client = $row[1];
echo " <option value='" . $id_client . "'>" . $nom_client . "</option>";
}//end while
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr><td></td><td><input type='submit'></td></tr>\n";
echo "</tr>";
echo "</td>";
echo "</table>";
echo "</form><br/>\n";
Dans la page où vous voulez récupérer la donnée sélectinnée, il faudra mettre ceci
if(isset($_REQUEST["id_client" ])) {$id_client = $_REQUEST["id_client" ];}
geekat
Messages postés
228
Date d'inscription
Statut
Membre
Dernière intervention
Merci beaucoup pour votre réponse et pour les liens :).
Bonjour,
Je ne comprend pas trop le soucis, ou du moins la question.
Ton but est de savoir ce qu'à cocher la personne ?
Si c'est le cas il te faut juste une table avec 2 champs mini (il faut rajouter un ID ou truc genre pour savoir qui a répondu quoi) :
- Un champ "Française"
- Un champ "Étrangère"
Après tu as juste a bien gérer ton formulaire d'envoi et selon, enregistrer une certaine valeur dans les champs de ta base :
Si il a coché uniquement Française : Française = 1 et Étrangère = 0
Si il a coché uniquement Étrangère : Française = 0 et Étrangère = 1
etc..
Et quand tu récupère tes résultats tu sais si c'est null (tout à 0) ou l'inverse (tout à 1) ou une seule réponse.
En espérant avoir compris ton problème et t'avoir aidé
Je ne comprend pas trop le soucis, ou du moins la question.
Ton but est de savoir ce qu'à cocher la personne ?
Si c'est le cas il te faut juste une table avec 2 champs mini (il faut rajouter un ID ou truc genre pour savoir qui a répondu quoi) :
- Un champ "Française"
- Un champ "Étrangère"
Après tu as juste a bien gérer ton formulaire d'envoi et selon, enregistrer une certaine valeur dans les champs de ta base :
Si il a coché uniquement Française : Française = 1 et Étrangère = 0
Si il a coché uniquement Étrangère : Française = 0 et Étrangère = 1
etc..
Et quand tu récupère tes résultats tu sais si c'est null (tout à 0) ou l'inverse (tout à 1) ou une seule réponse.
En espérant avoir compris ton problème et t'avoir aidé
Bonjour, merci pour votre réponse.
En fait je réussis à stocker les valeurs de cette façon : plusieurs valeurs dans un seul champ séparées par un séparateur. (Exp : champ nationalite : FR ETR)
Mais je trouve le souci pour stocker des valeurs de type clés étrangères, si le champ 'nationalite' est une clé étrangère, comment pourrais-je stocker FR et ETR ?
J'ai cru entendre que réaliser une autre table repoudrerait le problème mais je ne sais pas du tout comment.
En fait je réussis à stocker les valeurs de cette façon : plusieurs valeurs dans un seul champ séparées par un séparateur. (Exp : champ nationalite : FR ETR)
Mais je trouve le souci pour stocker des valeurs de type clés étrangères, si le champ 'nationalite' est une clé étrangère, comment pourrais-je stocker FR et ETR ?
J'ai cru entendre que réaliser une autre table repoudrerait le problème mais je ne sais pas du tout comment.