Bonjour,

J'aimerai faire un site internet qui affiche toute ma base de données quand je ne choisi aucun critère dans mon menu, mais lorsque je choisis un ou plusieurs critères et que j'appuie sur valider, seul les élèments qui correspondent aux critères s'affichent.
Seulement, j'aimerai que les proposition de choix de critères se générent automatiquement grâce à ma base de données.
J'ai donc fait cela sur une page que j'ai nommé catalogue.php pour sélectionner les critères que l'on veut voir apparaitre :

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<form method="POST" action="catalogue.php">
                    <fieldset>
                    <?php
                    if(isset($res)){
                    $sql= "SELECT motif FROM catalogue GROUP BY motif";
                    $resul = $bdd->query($sql);
                     while ($ligne = $resul->fetch()) { ?>
                    <input type="radio" name="motif" value="soleil" id="soleil"/>
                      <label for="soleil"> Soleil</label><br>
                      <input type="radio" name="motif" value="lune" id="lune" />
                      <label for="lune"> Lune</label><br>
                      <input type="radio" name="motif" value="etoile" id="etoile" />
                      <label for="etoile"> Étoile</label><br>
                      <input type="radio" name="motif" value="planete" id="planete"/>
                      <label for="planete"> Planéte</label>
                     <?php }} ?>
                    </fieldset>
                    <input type="submit" name="typemotif" value="Valider">
                  </form>
 
                  <form method="POST" action="catalogue.php">
                    <fieldset>
                    <?php
                    if(isset($res)){
                    $sql= "SELECT position FROM catalogue GROUP BY position";
                    $resul = $bdd->query($sql);
                     while ($ligne = $resul->fetch()) { ?>
                    <input type="radio" name="position" value="Droite" id="Droite" />
                      <label for="Droite"> Droite</label><br>
                      <input type="radio" name="position" value="Gauche" id="Gauche" />
                      <label for="Gauche"> Gauche</label>
                     <?php }} ?>
                    </fieldset>
                    <input type="submit" name="typeposition" value="Valider">
                  </form>
 
                 <form method="POST" action="catalogue.php">
                    <fieldset>
                    <?php
                    if(isset($res)){
                    $sql= "SELECT couleur FROM catalogue GROUP BY couleur";
                    $resul = $bdd->query($sql);
                     while ($ligne = $resul->fetch()) { ?>
                    <input type="radio" name="couleur" value="bleu" id="bleu"/>
                      <label for="bleu"> Bleu</label><br>
                      <input type="radio" name="couleur" value="rouge" id="rouge" />
                      <label for="rouge"> Rouge</label><br>
                      <input type="radio" name="couleur" value="vert" id="vert" />
                      <label for="vert"> Vert</label><br>
                      <input type="radio" name="couleur" value="jaune" id="jaune"/>
                      <label for="jaune"> Jaune</label>
                     <?php }} ?>
                    </fieldset>
                    <input type="submit" name="typecouleur" value="Valider">
                  </form>
Ensuite dans la balise <head> </head> de cette même page (catalogue.php), j'ai écrit ce code pour chercher ces critères dans la base de données:

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
16
17
18
19
20
21
22
23
24
25
26
<?php
  session_start();
  require_once('BD.php');
  $bdd = getBD();
 
   $req="SELECT * FROM catalogue"
 
    if (isset($_POST['motif'])) {
    $motif = $_SESSION['motif'] = "'" . $_POST['motif'] . "'";
    $req = $req . " AND catalogue.motif = $motif";
  }
 
  if (isset($_POST['position'])) {
    $position = $_SESSION['position'] ="'" . $_POST['position'] . "'";
    $req = $req . " AND catalogue.position = $position";
  }
 
  if (isset($_POST['couleur'])) {
    $couleur= "'" . $_POST['couleur'] . "'";
    $req = $req . " AND catalogue.couleur = $couleur";
  }
 
  $res = $bdd->query($req);
 
 
  ?>
Avec ce code j'ai toute ma base de données qui s'affiche quand j'arrive sur la page et que je n'ai choisi aucun critère comme je voulais, seulement dès que je coche n'importe quel critère je n'ai plus rien qui s'affiche sur la page.

Je débute dans la programmation en php, peut être que mes erreurs sont évidentes je suis désolée, mais pourriez vous m'aider svp ?