Aller au contenu

Probleme de select multiple et MSQL


MissOlana

Sujets conseillés

Rebonjour à tous chers internautes,smartass.gif
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 2
si le membre clique sur homme, femme couple : 1 et 2 et 3
jusque là tout va bien !thumbup.gif

Mon souci et l'ajout dans ma base de données MSQL, je n'y arrive paswhistling.gif
Voici 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éresu_idea_bulb02.gif , merci encore les amis, je remercie aussi p_flower01.gif duplex13, Dadou, hsdinop_flower01.gif pour mes anciens soucis wink.gif

Lien vers le commentaire
Partager sur d’autres sites

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.


Lien vers le commentaire
Partager sur d’autres sites

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 w00t.gif



<?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' ");
}


}
}
}

?>
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...