Comment insérer plusieurs valeurs d'un select multiple ?
Fermé
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
-
Modifié par geekat le 28/08/2015 à 16:54
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 2 sept. 2015 à 11:09
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 2 sept. 2015 à 11:09
A voir également:
- Sql plusieurs valeurs dans un champ
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Blob sql ✓ - Forum Webmastering
- Quand on visite cette page, des messages sont échangés entre le navigateur et le site web. des extraits des messages échangés lors de la première connexion sont reproduits ci-dessous. des valeurs ont été remplacées par des numéros. retrouvez chacune de ces valeurs. - Forum Windows 10
- Excel liste de valeurs - Guide
- Nous ne pouvons pas résumer ce champ avec somme ✓ - Forum Excel
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
Modifié par Pitet le 28/08/2015 à 17:24
Modifié par Pitet le 28/08/2015 à 17:24
Salut,
Une solution possible serait de sérialiser ton tableau pour le convertir en chaine de caractère.
A la récupération des données, tu pourras bien sûr dé-sérialiser cette chaine pour récupérer ton tableau.
http://php.net/manual/fr/function.serialize.php
https://www.php.net/manual/fr/function.unserialize.php
Bonne journée
Une solution possible serait de sérialiser ton tableau pour le convertir en chaine de caractère.
A la récupération des données, tu pourras bien sûr dé-sérialiser cette chaine pour récupérer ton tableau.
http://php.net/manual/fr/function.serialize.php
https://www.php.net/manual/fr/function.unserialize.php
Bonne journée
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
Modifié par geekat le 1/09/2015 à 15:45
Modifié par geekat le 1/09/2015 à 15:45
Bonjour,
Voilà un exemple de code :
J'ai une table 'categorisation' qui contient :
- une clé primaire (id_categorisation),
- une clé étrangère (id_nationalite) qui est clé primaire d'une autre table 'nationalite'.
J'ai une table 'nationalite' qui contient :
- une clé primaire (id_nationalite),
- un champ simple (nationalite)
But :
Le but est d'insérer les nationalités ou plutôt les id_nationalite dans la table categorisation. Je peux avoir 1 ou plusieurs nationalités sélectionnées, j'aurais donc plusieurs entiers successif.
Désolée c'est un peu long. L'insertion dans ce cas doit avoir comme valeurs :
id _nationalite : 1 2 3 5 9....
Voilà un exemple de code :
Table categorisation :
id_categorisation INT PK
id_nationalite INT FK
Table nationalite:
id_nationalite INT PK
nationalite VARCHAR(50)
J'ai une table 'categorisation' qui contient :
- une clé primaire (id_categorisation),
- une clé étrangère (id_nationalite) qui est clé primaire d'une autre table 'nationalite'.
J'ai une table 'nationalite' qui contient :
- une clé primaire (id_nationalite),
- un champ simple (nationalite)
But :
Le but est d'insérer les nationalités ou plutôt les id_nationalite dans la table categorisation. Je peux avoir 1 ou plusieurs nationalités sélectionnées, j'aurais donc plusieurs entiers successif.
<form action="" method="post" ">
<select name="nationalite[] multiple">
<OPTION VALUE="">Nationalité</OPTION>
<?php
while ($donnees1 = $reponse1->fetch(PDO::FETCH_ASSOC))
{if ($donnees1["id_nationalite"]==$nationalite)
echo '<OPTION VALUE="'.$donnees1["id_nationalite"].'" selected="selected">'.$donnees1["nationalite"].'</OPTION>';
else
echo '<OPTION VALUE="'.$donnees1["id_nationalite"].'">'.$donnees1["nationalite"].'</OPTION>';
}'; ?>
</select>
<?php
$id_nationalite=($_POST['id_nationalite']));
$bdd->exec("INSERT INTO categorisation VALUES (null,$id_nationalite");
?>
Désolée c'est un peu long. L'insertion dans ce cas doit avoir comme valeurs :
id _nationalite : 1 2 3 5 9....
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
1 sept. 2015 à 16:02
1 sept. 2015 à 16:02
Ton champ id_nationalite dans la table categorisation est de type INT FK, tu ne pourras donc enregistrer qu'un seul identifiant de nationalité par ligne de la table categorisation.
Soit tu conserves ton champ id_nationalite en type INT FK : dans ce cas tu dois faire une boucle pour parcourir tous les identifiants sélectionnés et effectuer une requête INSERT pour chaque identifiant (un identifiant par ligne de la table categorisation).
Soit tu transforme ton champ id_nationalite en type VARCHAR : dans ce cas tu peux convertir ton tableau des identifiants sélectionnés en chaine de caractère via serialize() et l'enregistrer tel quel.
Soit tu conserves ton champ id_nationalite en type INT FK : dans ce cas tu dois faire une boucle pour parcourir tous les identifiants sélectionnés et effectuer une requête INSERT pour chaque identifiant (un identifiant par ligne de la table categorisation).
Soit tu transforme ton champ id_nationalite en type VARCHAR : dans ce cas tu peux convertir ton tableau des identifiants sélectionnés en chaine de caractère via serialize() et l'enregistrer tel quel.
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
2 sept. 2015 à 11:09
2 sept. 2015 à 11:09
Merci beaucoup! je vais essayer ça
31 août 2015 à 10:15
31 août 2015 à 16:11