Bonjour,
Malgré pas mal d'heure de recherche sur les forums je n'ai pas trouvé la solution complète à mon problème.

Mon objectif : trier dans une table les enregistrements vérifiant 2 critères sélectionnés dans des menus déroulants (les éléments de chaque menu déroulant proviennent d'une table différente).Jusqu'ici je vois ce qu'il faut faire.

Si aucun des 2 critères n'est sélectionné c'est à dire si les menus déroulants restent sur "tout" la requête renvoie l'ensemble des enregistrements.Si un seul des 2 critères est activé la requête ne tient compte que de ce seul critère.
(Je me limite pour l'instant à 2 critères mais j'aimerai en mettre d'avantage.)

Tables utilisées:
affaires contenant:id, intitule,nature_tache,id_agent1,id_domaine
agents contenant:id, nom,prenom
domaines contenant:id,domaine

Pages php:
rech_multi_aff.php : formulaire de paramétrage de la requête. Méthode GET, 2 variables URL utilisées : $_GET['choix_pren'] et $_GET['choix_dom']
affic_rech_multi_aff.php : page d'affichage des résultats de la requête


Formulaire de sélection :
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php require_once('Connections/ConnexionCCED.php'); ?>
<?php
if(!isset($_GET['choix_pren']))$_GET['choix_pren']=1;
if(!isset($_GET['choix_dom']))$_GET['choix_dom']=1;
//init d'utilisateurs si non déclaré
?>
 
<?php
 
mysql_select_db($database_ConnexionCCED, $ConnexionCCED);
$query_rs_agent1 = "SELECT * FROM agents";
$rs_agent1 = mysql_query($query_rs_agent1, $ConnexionCCED) or die(mysql_error());
$row_rs_agent1 = mysql_fetch_assoc($rs_agent1);
$totalRows_rs_agent1 = mysql_num_rows($rs_agent1);
 
mysql_select_db($database_ConnexionCCED, $ConnexionCCED);
$query_rs_dom = "SELECT * FROM domaines";
$rs_dom = mysql_query($query_rs_dom, $ConnexionCCED) or die(mysql_error());
$row_rs_dom = mysql_fetch_assoc($rs_dom);
$totalRows_rs_dom = mysql_num_rows($rs_dom);
?>
<!DOCTYPE html> 
<html lang="fr">
<head>   
<meta http-equiv="content-type" content="text/html; charset="utf-8" />
<link rel="stylesheet" href="style/style_def.css" />
<script src="script.js"></script>
 
</head>
 
	<body>
          <div id="region_modif1">
            <form name="form1" method="get" action="affic_rech_multi_aff.php">
              <table width="200" border="1">
                <tr>
                  <td>Agent1:</td>
                  <td><select name="select" size="1" id="select">
                    <option value="0" <?php if (!(strcmp(0, $_GET['choix_pren']))) {echo "selected=\"selected\"";} ?>>TOUT</option>
                    <?php
do {  
?>
                    <option value="<?php echo $row_rs_agent1['id']?>"<?php if (!(strcmp($row_rs_agent1['id'], $_GET['choix_pren']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rs_agent1['prenom']?></option>
                    <?php
} while ($row_rs_agent1 = mysql_fetch_assoc($rs_agent1));
  $rows = mysql_num_rows($rs_agent1);
  if($rows > 0) {
      mysql_data_seek($rs_agent1, 0);
	  $row_rs_agent1 = mysql_fetch_assoc($rs_agent1);
  }
?>
                  </select></td>
                  <td>&nbsp;</td>
                  <td>Domaine:</td>
                  <td><select name="select2" size="1" id="select2">
                    <option value="1" <?php if (!(strcmp(1, $_GET['choix_dom']))) {echo "selected=\"selected\"";} ?>>TOUT</option>
                    <?php
do {  
?>
                    <option value="<?php echo $row_rs_dom['id']?>"<?php if (!(strcmp($row_rs_dom['id'], $_GET['choix_dom']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rs_dom['domaine']?></option>
                    <?php
} while ($row_rs_dom = mysql_fetch_assoc($rs_dom));
  $rows = mysql_num_rows($rs_dom);
  if($rows > 0) {
      mysql_data_seek($rs_dom, 0);
	  $row_rs_dom = mysql_fetch_assoc($rs_dom);
  }
?>
                  </select></td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td><input type="submit" name="button" id="button" value="Envoyer"></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                </tr>
              </table>
              <p>&nbsp;</p>
            </form>
          <p>&nbsp;</p></div>
 
	</body>
</html>
<?php
mysql_free_result($rs_agent1);
 
mysql_free_result($rs_dom);
?>
Page traitant les requêtes :
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php require_once('Connections/ConnexionCCED.php'); ?>
<?php
//init des variables si non déclarées
if(!isset($_GET['choix_pren']))$_GET['choix_pren']="";
if(!isset($_GET['choix_dom']))$_GET['choix_dom']="";
?>
 
<?php
 
//// Définitions de variables :///
$crit_1=$_GET['choix_pren'];
$crit_2=$_GET['choix_dom'];
 
 
//// Définitions des choix critère 1 et 2 activés ? /////
 
if (isset ($_GET['choix_pren']))
	{
		$clause_crit_1_where="WHERE id_agent1=$crit_1";
		$clause_crit_1_and="AND id_agent1=$crit_1";
	}
elseif (!isset($_GET['choix_pren']))
	{
		$clause_crit_1_where=="";
		$clause_crit_1_and=="";
	}
 
 
if (isset ($_GET['choix_dom']))
	{
		$clause_crit_2_where="WHERE id_domaine=$crit_2";
		$clause_crit_2_and="AND id_domaine=$crit_2";
	}
 
elseif (!isset ($_GET['choix_dom']))
	{
		$clause_crit_2_where=="";
		$clause_crit_2_and=="";
	}
//// Listes des requêtes////
mysql_select_db($database_ConnexionCCED, $ConnexionCCED);
if ($crit_1=="" AND $crit_2=="")
 	{    //// La requête///
		$requet="SELECT intitule,nature_tache,id_domaine,id_agent1 FROM affaires";
		//// Son résultat ////
		$reponse= mysql_query($requet, $ConnexionCCED) or die(mysql_error());
		$ligne = mysql_fetch_array($reponse);
	 }
elseif ($crit_1=="")
	{
	   //// La requête///
		$requet="SELECT intitule,nature_tache,id_domaine,id_agent1 FROM affaires WHERE id_domaine='$crit_2'";
		//// Son résultat ////
		$reponse= mysql_query($requet, $ConnexionCCED) or die(mysql_error());
		$ligne = mysql_fetch_array($reponse);
 
	}
elseif ($crit_2=="")
	{
	   //// La requête///
		$requet="SELECT intitule,nature_tache,id_domaine,id_agent1 FROM affaires WHERE id_agent1='$crit_1'";
		//// Son résultat ////
		$reponse= mysql_query($requet, $ConnexionCCED) or die(mysql_error());
		$ligne = mysql_fetch_array($reponse);
	}
else  //// si les 2 critères ont été activés////
	{
		//// La requête///
		$requet="SELECT intitule,nature_tache,id_domaine,id_agent1 FROM affaires WHERE id_agent1='$crit_1' AND id_domaine='$crit_2'";
		//// Son résultat ////
		$reponse= mysql_query($requet, $ConnexionCCED) or die(mysql_error());
		$ligne = mysql_fetch_array($reponse);
	}
?>
<!DOCTYPE html> 
<html lang="fr">
<head>   
<meta http-equiv="content-type" content="text/html; charset="utf-8" />
<link rel="stylesheet" href="style/style_def.css" />
<script src="script.js"></script>
</head>
 
	<body>
 
          <div id="region_modif1">
          <table id="tableau">
  <tr>
    <td>intitule</td>
    <td>nature_tache</td>
    <td>id_domaine</td>
    <td>id_agent1</td>
   </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $ligne['intitule']; ?></td>
      <td><?php echo $ligne['nature_tache']; ?></td>
      <td><?php echo $ligne['id_domaine']; ?></td>
      <td><?php echo $ligne['id_agent1']; ?></td>  
    </tr>
    <?php } while ($ligne = mysql_fetch_array($reponse)); ?>
</table>
   </div>
	</body>
<!-- InstanceEnd --></html>
Problème :
Quelle que soit la sélection des critère1 et critère 2 la requête renvoie systématiquement l'ensemble des enregistrements.
Pourtant le formulaire renvoie bien les 2 variables $_GET.
Je n'arrive pas à faire afficher le choix "tout" systématiquement au démarrage du formulaire

Merci d'avance pour votre aide.