Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/04/2007, 11h21   #1
Invité de passage
 
Étudiant
Inscription : avril 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 26
Points : 2
Points : 2
Par défaut [SQL] Formulaire checkbox construit avec les valeurs issues d'une BDD

Salut !
Alors j'ai fait un formulaire qui permet de faire une recherche dans une base de données. J'ai 2 boutons checkbox :
Code :
1
2
3
4
5
 
echo "<td valign=middle align=right width=5%><input type=checkbox name=A value=all></td>";
echo "<td valign=middle width=40%><b>A</b></td>";
echo "<td valign=middle align=right width=5%><input type=checkbox name=B value=all></td>";
echo "<td valign=middle width=50%><b>B</b></td>";
Lorsque je clique sur l'un des 2 boutons et que je lance la recherche, j'ai le bon résultat qui s'affiche. Mais lorsque je clique sur les 2 boutons, je n'ai aucun résultat !
J'aimerais faire en sorte que lorsque je clique sur les 2 boutons alors les résultats correspondant à A s'affichent ainsi que ceux correspondant à B.

Voici ma requête permettant la recherche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
		$rqtListe=	"SELECT * ".
					"FROM chp1, chp2, chp3, chp4, chp5 ".
					"WHERE chp1.code1 = chp2.code12 ".
					"AND chp2.code2 = chp3.code23 ".
					"AND chp3.code3 = chp4.code34 ".
					"AND chp4.code4 = chp5.code45 ";
		//	Si A est coché.
		if(isSet($_POST["A"]))
			$rqtListe=$rqtListe."AND chp1.code1 = 1 ";
		//	Si B est coché.
		if(isSet($_POST["B"]))
			$rqtListe=$rqtListe."AND chp1.code1 = 2 ";
		$rqtListe=$rqtListe."ORDER BY chp4.nom";
Bon je pense qu'il y a tout...
Meci pour votre aide
Samysam25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 16h01   #2
Membre éclairé
 
Inscription : juillet 2003
Messages : 338
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 338
Points : 339
Points : 339
Comment veux-tu que
Code :
1
2
3
 
if(isSet($_POST["A"]))
			$rqtListe=$rqtListe."AND chp1.code1 = 1 ";
ET
Code :
1
2
3
 
if(isSet($_POST["B"]))
			$rqtListe=$rqtListe."AND chp1.code1 = 2 ";
Cela implique que chp1.code1 = 1 ET chp1.code1 = 2, non??
tatareau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 16h26   #3
Invité de passage
 
Étudiant
Inscription : avril 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 26
Points : 2
Points : 2
Oui c'est pas faux
J'avais vu ce problème mais je ne voix pas coment le résoudre. J'ai bien essayé avec un OR au lieu de AND dans la requête mais ça n'a pas fonctionné.
Dois-je faire une sous-requête ? Non je ne pense pas non plus.
Alors comment dois-je procédé ?
Samysam25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 16h34   #4
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Bonjour,
Avec le OR ca devrait le faire. En mettant tes valeurs (surtout non numeriques) entre quotes dans ta requete ca devrait encore plus le faire !
Et il y a un mysql_query ? (suivi du or die comme ca tu verrais les eventuelles erreurs mySQL) ?

Sohnic
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 17h22   #5
Invité de passage
 
Étudiant
Inscription : avril 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 26
Points : 2
Points : 2
Bon j'ai essayé avec le OR et les quotes mais ça ne marche toujours pas
Sinon j'ai bien pensé à une autre alternative :
Avoir 2 boutons :
- 1 qui permet de faire la recherche suivant le checkbox coché
- et 1 autre qui permet de donner tous les résultats comme si on avait coché les 2 checkbox.

Mais dans ce cas il faut faire en sorte de ne pouvoir cliqué que sur 1 seul checkbox. Je pense que ca doit etre faisable en Javascript mais je ne m'y connait pas vraiment...
Samysam25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 17h55   #6
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Une fois que tu as fait toutes tes concatenations, fais un echo de ta requete et teste la en direct (avec phpmyadmin par exemple) pour voir ce qu'elle te retourne... Ca eclairera peut-etre ta lanterne....

S.
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h10.


 
 
 
 
Partenaires

Hébergement Web