Pb de variable avec mysql

Résolu/Fermé
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 - 25 août 2007 à 21:24
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 - 27 août 2007 à 16:54
Bonjour,
je realise un simple formulaire avec des case a cocher.je recupere ces variable pour les traiter avec une requete mysql, mon probleme est que je ne voudrai selectionner que les case qui sont coché..j'ai essayé de faire :
select var1, var2 , var 3etc.. mais quand une des case n'est pas cocher , le formulaire ne transmet pas de valeur et ma requete ne marche pas..
Comment faire pour que me requete sql ne traite que les valeur des case coché.
j'espere avoir été clair.. merci a tous

4 réponses

Ambobo Messages postés 28 Date d'inscription dimanche 26 août 2007 Statut Membre Dernière intervention 8 mars 2009 49
27 août 2007 à 00:01
Bonjour,

D'abord, il te faut être plus clair s'il te plait, peux-tu nous poster le code source.
Comment veux-tu traiter les cases à cocher avec ta requète, et quel type de requète : à priori quand on fait un SELECT en mysql, c'est pour chercher un enregistrement dans une base de donnée.

En attente de ta réponse
0
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 20
27 août 2007 à 13:46
Bonjour,
merci d'avoir repondu.
hm si je n'ai pas poster de code source c'est que je n'en ai pas encore:) j'essai d l'imaginer avant.

Bref je vais essayer d'etre plus clair.

J''ai un simple formulaire avec des case a cocher. il peut donc y avoir plusieurs cases de cocher , je transmet ces valeurs par GET ou POST et j'interroge ma base de donnée en utilisant ces variable dans le select.

Si c'etait un bouton de type radio , il y aurait une seul variable et cela ne poserait pas de probleme.

Mais moi je veux interrogé ma base de donnée en fonction des cases qui ont été coché.
Mon probleme est que dans mon select , je ne peux pas mettre toutes les variable puisque si une case n'est pas coché, la variable transmise sera nul et mon select ne marchera pas.

je simplifie :

voici mon formulaire

case1 case 2 case3 case4 case5 case6 case7
coché oui non oui non non oui oui

je veux donc effectuer ma requeteen utilisant simplement les case qui ont été coché mais puisque je ne peux pas savoir a l avance quel case vont etre coché comment puis je faire?

select $case1 , $case2 , $case3 , $case4, $case5 , $case6 , $case7 etc..

si une des case n'est pas coché, il n y aura pas de valeur transmise et mon select ne marchera pas.

voila j'espere avoir été plus clair.
0
Ambobo Messages postés 28 Date d'inscription dimanche 26 août 2007 Statut Membre Dernière intervention 8 mars 2009 49
27 août 2007 à 14:13
Il y a la solution d'utiliser des conditions, cependant si le nombre de cases à cocher est élevé cela devient dificile et rébarbatif. Il s'agit en fait de contrôler l'état de tes cases à cocher avec un bloc IF et modifier la requète SELECT en conséquence.

EX :
mysql_query("SELECT FROM 'MaBaseDeDonnée' WHERE ".$stringCondition."); ...etc

En fait tu peux créer la "$stringCondition" dans les blocs IF que tu aura définis auparavent, par exemple :

if ($_POST[$case1] == 1){
$stringCondition .= "case1 = true AND "; // on ajoute la condition dans la chaine "stringCondition
}
if ($_POST[$case2] == 1){
$stringCondition .= "case2= true AND ";
}
if ($_POST[$case2] == 1){
$stringCondition .= "case3 = true AND ";
}
if ($_POST[$case2] == 1){
$stringCondition .= "case4 = true AND ";
}


Ainsi si une case n'est pas cochée, la condition n'apparaîtra pas dans la requète et donc celle marchera sans problème.

En espèrant que cela ai pu t'aider dans tes recherches.
Ambobo
0
aveuglemspas_sourd Messages postés 286 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 12 octobre 2009 20
27 août 2007 à 16:54
ouai je vais essayer ça.
Merci d'avoir pris le temps de me repondre.
0