Accueil > Forum > > > > insert multiple de checkbox dans column de table mysql
insert multiple de checkbox dans column de table mysql
dimanche 27 juillet 2008 à 17:44:16 |
insert multiple de checkbox dans column de table mysql

lassad_haddaji
|
salut tt le monde, mon probleme est que je veux inserer des champs de checkbox dans une seule solumn de tabe mysql 1)fichier formulaire.html <form action="insert.php" methode="post"> <input type="text"> ....... <!--------checkbox----> <input name="checkbox[]" type="checkbox" value="1"> <input name="checkbox[]" type="checkbox" value="2"> <input name="checkbox[]" type="checkbox" value="3"> <input name="checkbox[]" type="checkbox" value="4"> ...... </form>
2) fichier insert.php
<?php include('connection.php');
for ($i=0;$i<count($_post['checkbox']);$i++) { $sql="insert into $table values (..,...,...,'".$_POST['checkbox'][$i]."') "; mysql_query($sql); }
mysql_close();
?>
l'erreur que dans la table fais l'ajout de multiligne si je coche 3 checkbox fais lajout de 3 ligne
est ce que possible de mettre l'ensemble de checkbox dans un table array()??? jai essai cette methode mais jai ambigu j'attend vos reponse. merci
|
|
lundi 28 juillet 2008 à 09:43:27 |
Re : insert multiple de checkbox dans column de table mysql

JoJo738
|
Réponse acceptée !
Hello. Dans ton cas, tu fais une boucle pour enregistrer chaque checkbox coché. Donc N checkbox coché = N insertions dans la table Non, il est impossible de stocker un Array dans SQL ... enfin, directement. Heureusement, il existe les fonctions magiques serialize() et unserialize() (voir explode() et implode() pour certains cas) serialize() va transformer un Array en une chaine String. unserialize() va faire l'inverse : une chaine String vers un Array Donc prennons le formulaire suivant : <form action="insert.php" methode="post"> <p> <input name="checkbox[]" type="checkbox" value="1"> <input name="checkbox[]" type="checkbox" value="2"> <input name="checkbox[]" type="checkbox" value="3"> <input name="checkbox[]" type="checkbox" value="4"> </p> <p> <input type="submit" /> </p> </form>
Et avec explode()/implode() <?php
if( isset($_POST['checkbox']) && is_array($_POST['checkbox']) ) { // POST['checkbox'] existe et est un array. $return_checkbox = implode(',', $POST['checkbox']); // On obtient ici : "1,2,3,4"
// Dans ce cas là, pour faire des vérifications il faut mettre des filtres (array_filter par exemple) ou faire une bouche (foreach) et faire une vérificationn à l'intérieur (ici, on ajoute soit tout de suite la valeur au $_return_checkbox soit on crée un nouveau array (ou on supprime la valeur actuelle) et on fait l'implode. // Et ne pas oublier le séparateur !
mysql_query('[...] "' . $return_checkbox . '" [...]') or die(mysql_error()); }
// La lecture se fat normalement, mais on utilise explode('séparateur', 'row["champ_array"]') (ou split si on à plusieurs séparateurs) pour transformer en array
?>
Et avec serialize()/unserialize() <?php
if( isset($_POST['checkbox']) && is_array($_POST['checkbox']) ) { // POST['checkbox'] existe et est un array. $return_checkbox = serialize(',', $POST['checkbox']); // On obtient ici : "a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}"
// Dans ce cas là, pour faire des vérifications il faut mettre des filtres (array_filter par exemple) ou faire une bouche (foreach) et faire une vérificationn à l'intérieur (ici, on ajoute soit tout de suite la valeur au $_return_checkbox soit on crée un nouveau array (ou on supprime la valeur actuelle) et on fait le serialize().
mysql_query('[...] "' . $return_checkbox . '" [...]') or die(mysql_error()); }
// Idem, lecture en passant par unserialize(). Ici besoin d'aucun séparateurs, la fonction gérant tout toute seule ^^
?>
Si ma reponse te convient, merci de l'accepter ! 
|
|
lundi 28 juillet 2008 à 13:45:59 |
Re : insert multiple de checkbox dans column de table mysql

lassad_haddaji
|
merci beaucoup, ça marche nickel, j'ai pas essaie avec serialize()/unserialize(), je l'essaie plus tard
|
|
lundi 28 juillet 2008 à 16:33:05 |
Re : insert multiple de checkbox dans column de table mysql

JoJo738
|
Réponse acceptée !
Re ^^ Euh, après tout dépend de ton cas. Si tu n'enregistreras que des valeurs numériques ou "simple" : 1, 2, 3, 4, a, b, c, d, mot ... je conseil l'explode/implode. Mais si tu dois stoquer des valeurs un peu plus complxes (objets, array, descriptif, ...) le (un)serialize() est ton ami  Si ma reponse te convient, merci de l'accepter ! 
|
|
lundi 28 juillet 2008 à 16:40:06 |
Re : insert multiple de checkbox dans column de table mysql

lassad_haddaji
|
est ce que tu peux nous expliquer plus la methode avec serialize() , meme un exemple cé mieux merci  
|
|
lundi 28 juillet 2008 à 16:58:38 |
Re : insert multiple de checkbox dans column de table mysql

JoJo738
|
Réponse acceptée !
re, Euh, serialize() te permet de convertir un array/object en string. C'est un peu la même méthode qu'avec explode()/implode(). Dans la méthode E/I on à un array, puis après le passage à l'implode(',', $array); on obtient une chaine de caractère ("1,2,3,4"). Ensuite, à la lecture l'explode(',', $row); permet de récupérer l'array. Malheureusement cette méthode à des limites (pas d'Array multi-dim, d'object, ...). Donc, si on prend cet exemple : $array = array(1, 2, 3, 4); // Par exemple ton _POST['checkbox']
echo serialize($array); // " a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;} " // (en gras tu peux voir les valeurs i:Int, s:String, o:Object, a:Array, ...
print_r(unserialize('a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}')); // -> unserialise($row['champ_sql']); // Array(1, 2, 3, 4)
L'avantage, c'est qu'il n'y a pas besoin de séparateurs (donc pas besoin de te tracasser pour savoir si tel ou tel caractère peut être utilisé) et tu peux enregistrer absolument toutes les informations ! Mais ça prend plus de place, et c'est plus gourmand en ressources ... Ah oui, pour faire une recherche, puisque ce sont des méthodes trafiquées ... il faut jouer sur les regex/LIKE pour utiliser la clause WHERE Si ma reponse te convient, merci de l'accepter ! 
|
|
mardi 19 avril 2011 à 11:13:14 |
Re : insert multiple de checkbox dans column de table mysql

soniamariem
|
salut je besoins de trouvez une solution pour envoyer un message à partir le pc vers un telephone mobile
Bonjour
|
|
Cette discussion est classée dans : insert, table, checkbox, mysql, multiple
Répondre à ce message
Sujets en rapport avec ce message
insert multiple de checkbox dans column de table mysql [ par lassad_haddaji ]
je cherche des solutions
insert code ASCII dans une table mysql [ par studenttours ]
bonjour,j'ai du code hexa que je transforme en texte(la fonction marche parfaitement), et lorsque j'insere le résultat dans une table mysql, il m'inse
foreach $_POST INSERT MYSQL [ par Annadrill ]
bonjour,bon j'ai un souci,j'ai un formulaire envoyé en post a une page php,ce que je cherche a faire c'est que n'importe quel formulaire puisse etre e
Clef etrangere [ par dykafr ]
Bonjour a tous!Au fait j'ai un probleme qui me fatique depuis plus d'une semaine,et la j'ai decider de faire appel a vous.Donc il se trouve que je su
Problème avec des checkbox et MySQL... [ par Rabba ]
Hello!J'ai le ptit problème suivant: J'ai une page qui va lister des option sous forme de checkbox, ses informations sont prise dans une table. Le but
MySQL_INSERT_ID mais pour le delete ???? [ par ripoux ]
Hello,Peut-être l'aurez-vous compris dans le titre...Je cherche un moyen pour faire un delete de plusieur table relié entre elle.Pour un Insert, il ex
probleme de checkbox ... [ par Alpha911 ]
Bonjour j'ai un probleme avec les checkbox en effet, j'ai une base de donnée mysql ou est renfermé le champ Compte_FTP celui ci est de type tinyint(1)
mysql [ par ToToL ]
bonjour j'ai une table déja créé et je cherche a ajouter un champ ou a en renomer un. comment faire car la seul manip que je trouve est de supprimer
Probleme recuperation de l'id d'une table pour insérer dans une autre par la methode update [ par Alpha911 ]
Bonjour,Je test plusieurs methodes pour pouvoir prendre l'id d'une table qui et la recopier dans une autre table j'ai 2 tables UTILISATEUR et une autr
Insert (mysql et php) [ par nino69 ]
Bonjour, voici un problème un peut difficile: Je lance une requête insert pour insérer un enregistrement. Jusqu'à là pas de problème:$query4 ="INSERT
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|