IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Formulaire checkbox construit avec les valeurs issues d'une BDD


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 11
    Points
    11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Comment veux-tu que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isSet($_POST["A"]))
    			$rqtListe=$rqtListe."AND chp1.code1 = 1 ";
    ET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(isSet($_POST["B"]))
    			$rqtListe=$rqtListe."AND chp1.code1 = 2 ";
    Cela implique que chp1.code1 = 1 ET chp1.code1 = 2, non??

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    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é ?

  4. #4
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    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.
    (")-(")

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    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...

  6. #6
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    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.
    (")-(")

Discussions similaires

  1. problème avec les données issues d'une kinect
    Par takfa2008 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 05/03/2013, 09h20
  2. Réponses: 0
    Dernier message: 20/07/2010, 11h11
  3. [PDO] Afficher la requête construite avec les valeurs
    Par FMaz dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/08/2009, 20h33
  4. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  5. J’ai un souci avec les valeurs null sous sql server.
    Par zoltix dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/06/2006, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo