MissOlana Posté 15 Novembre 2013 Posté 15 Novembre 2013 Rebonjour à tous chers internautes,me revoila pour un probleme que je n'arrive pas à résoudre: (hey oui je suis une buse des fois (rire))Bon voici le script et mon probleme:J'utilise un select multiple pour proposer un choix de recherche: (Homme, femme, couple) <select multiple="multiple" name="recherche[]" multiple size="3"> <option data-img-src="icone-homme.png" value="1"></option> <option data-img-src="icone-femme.png" value="2"></option> <option data-img-src="icone-couple.png" value="3"></option></select> Je récupere les données de mon choix multiple <?phpif(isset($_POST['recherche'])){if(($_POST['recherche']) && !empty($_POST['recherche'])){$Col1_Array = $_POST['recherche'];//print_r($Col1_Array);foreach($Col1_Array as $selectValue){//affichage des valeurs sélectionnéesecho $selectValue."";}}}?> Le résultat s'affiche comme suit:si le membre clique sur homme et femme cela m'affiche: 1 et 2si le membre clique sur homme, femme couple : 1 et 2 et 3jusque là tout va bien !Mon souci et l'ajout dans ma base de données MSQL, je n'y arrive pasVoici ma base:Voici la solution expéré:La table "comptes" +---------------+------------+----------+---------+| nom | Choix1 | Choix2 | Choix3 |+---------------+------------+----------+---------+| MissOlana | 1 | 2 | 3 | (si j'ai choisi homme, femme couple)+---------------+------------+----------+---------+| Paul | 1 | | | (si il a choisi homme)+---------------+------------+----------+---------+| Pierre | | 2 | 3 | (si il a choisi femme et couple)+---------------+------------+----------+---------+ En attente de vos lumiéres , merci encore les amis, je remercie aussi duplex13, Dadou, hsdino pour mes anciens soucis
captain_torche Posté 15 Novembre 2013 Posté 15 Novembre 2013 Pour commencer, pourquoi mettre les valeurs de ton select dans la base ? Une solution plus propre (Et plus facilement compréhensible) serait d'organiser ta bdd comme suit, avec des booléens : +---------------+-----------+----------+---------+ | nom | homme | femme | couple | +---------------+-----------+----------+---------+ | MissOlana | 1 | 1 | 1 | (si tu as choisi homme, femme couple) +---------------+-----------+----------+---------+ | Paul | 1 | 0 | 0 | (si il a choisi homme) +---------------+-----------+----------+---------+ | Pierre | 0 | 1 | 1 | (si il a choisi femme et couple) +---------------+-----------+----------+---------+ Dans ce cas, ton formulaire devrait plutôt ressembler à ça, pour plus de simplicité : <select multiple="multiple" name="recherche[]" multiple size="3"> <option data-img-src="icone-homme.png" value="homme"></option> <option data-img-src="icone-femme.png" value="femme"></option> <option data-img-src="icone-couple.png" value="couple"></option> </select> Ensuite, dans ta boucle de récupération, tu construis ta requête en fonction des éléments remplis.
MissOlana Posté 16 Novembre 2013 Auteur Posté 16 Novembre 2013 Effectivement Captain_torche, tu as raison je me complique la vie, voici un développer que j'ai fait pour l'ajout dans ma base Msql, mais c'est pas propre du tout ! Si quequ'un peut me le faire plus propre je suis preneuse <?php if(isset($_POST['recherche'])) { if(($_POST['recherche']) && !empty($_POST['recherche'])){ $Col1_Array = $_POST['recherche']; foreach ($Col1_Array as $key => $selectValue) { if($key=='0') { mysql_query("UPDATE comptes SET $selectValue = '1' WHERE nom = '$utilisateur' "); } if($key=='1') { mysql_query("UPDATE comptes SET $selectValue = '1' WHERE nom = '$utilisateur' "); } if($key=='2') { mysql_query("UPDATE comptes SET $selectValue = '1' WHERE nom = '$utilisateur' "); } } } } ?>
Dadou Posté 16 Novembre 2013 Posté 16 Novembre 2013 Réfléchi 2 minutes, tu verras que tes if sont totalement inutiles
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant