[MySQL - ASP] Recherche Multicritères

Résolu/Fermé
Aquel Messages postés 199 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 1 octobre 2009 - 19 avril 2007 à 17:41
Aquel Messages postés 199 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 1 octobre 2009 - 20 avril 2007 à 17:13
Bonjour,

Je réalise actuellement une application intranet permettant de gérer les stages. Je doit dans celle-ci incorporer une formulaire de recherche multicritères.

Des entrées de type "checkbox" permettent de filtrer les fiches (par exemple: n'afficher que les stages conventionnés, n'afficher que les stages rémunérés, etc...).

Le problème est que je ne sais pas comment combiner ces résultats.

J'espère avoir été clair. Je vous envoi un bout de mon code pour vous éclairer:

<%
var chercher_prime = Request.Form("chercher_prime");
var chercher_embauche = Request.Form("chercher_embauche"); 
var chercher_fin = Request.Form("chercher_fin"); 
var chercher_milieu = Request.Form("chercher_milieu"); 
var chercher_convention = Request.Form("chercher_convention"); 
var chercher_present = Request.Form("chercher_present"); 

if (chercher_prime == "chercher_prime"){ 
	var req = "SELECT cle,civilite,nom,prenom,type_stage,diplome,j_debut,m_debut,a_debut,j_fin,m_fin,a_fin,duree,agence,tuteur,mission,convention,niveau,diplome,ecole,commentaireA,commentaireB,marque,poste,conclusion,indemnite,prime,suivi_1,suivi_2,suivi_3,suivi_4,suivi_5,suivi_6,suivi_7,suivi_8,suivi_9,suivi_10,date_suivi_1,date_suivi_2,date_suivi_3,date_suivi_4,date_suivi_5,date_suivi_6,date_suivi_7,date_suivi_8,date_suivi_9,date_suivi_10 FROM stagiaires WHERE prime!=''";
}else{

if (chercher_embauche == "chercher_embauche"){ 
	var req = "SELECT cle,civilite,nom,prenom,type_stage,diplome,j_debut,m_debut,a_debut,j_fin,m_fin,a_fin,duree,agence,tuteur,mission,convention,niveau,diplome,ecole,commentaireA,commentaireB,marque,poste,conclusion,indemnite,prime,suivi_1,suivi_2,suivi_3,suivi_4,suivi_5,suivi_6,suivi_7,suivi_8,suivi_9,suivi_10,date_suivi_1,date_suivi_2,date_suivi_3,date_suivi_4,date_suivi_5,date_suivi_6,date_suivi_7,date_suivi_8,date_suivi_9,date_suivi_10 FROM stagiaires WHERE conclusion='o'";
	
}else{
var req = "SELECT cle,civilite,nom,prenom,type_stage,diplome,j_debut,m_debut,a_debut,j_fin,m_fin,a_fin,duree,agence,tuteur,mission,convention,niveau,diplome,ecole,commentaireA,commentaireB,marque,poste,conclusion,indemnite,prime,suivi_1,suivi_2,suivi_3,suivi_4,suivi_5,suivi_6,suivi_7,suivi_8,suivi_9,suivi_10,date_suivi_1,date_suivi_2,date_suivi_3,date_suivi_4,date_suivi_5,date_suivi_6,date_suivi_7,date_suivi_8,date_suivi_9,date_suivi_10 FROM stagiaires ORDER BY nom ASC";
}};
	
	RS = Server.CreateObject("ADODB.RecordSet");
	RS.Open(req,conn,3,1);
		
	while (!RS.EOF)
	{
%>



Merci pour votre aide !
A voir également:

1 réponse

Aquel Messages postés 199 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 1 octobre 2009 10
20 avril 2007 à 17:13
J'ai résolu mon problème en mettant des clauses WHERE dans les "value" des "checkbox" du formulaire de recherche.

Je récupère ensuite les ces petits bout de requêtes et les ajoutes à la requête de base:


<table border="0" cellpadding="0" cellspacing="0" class="checkbox">

	<tr>
		<td>
		<%if (chercher_convention=="&&convention='true'"){%>
			<input type="checkbox" name="chercher_convention" value="&&convention='true'" checked="checked" />
		<%}else{%>
			<input type="checkbox" name="chercher_convention" value="&&convention='true'" />
		<%}%>
		</td>
		<td>
			Convention reçue
		</td>
	</tr>
	<tr>
		<td>
		<%if (chercher_milieu=="&&commentaireA!=''"){%>
			<input type="checkbox" name="chercher_milieu" value="&&commentaireA!=''" checked="checked" />
		<%}else{%>
			<input type="checkbox" name="chercher_milieu" value="&&commentaireA!=''" />
		<%}%>
		</td>
		<td>
			Commentaires de milieu de stage
		</td>
	</tr>
	<tr>
		<td>
		<%if (chercher_fin=="&&commentaireB!=''"){%>
			<input type="checkbox" name="chercher_fin" value="&&commentaireB!=''" checked="checked" />
		<%}else{%>
			<input type="checkbox" name="chercher_fin" value="&&commentaireB!=''" />
		<%}%>
		</td>
		<td>
			Commentaires de fin de stage
		</td>
	</tr>
	<tr>
		<td>
		<%if (chercher_embauche=="&&conclusion='o'"){%>
			<input type="checkbox" name="chercher_embauche" value="&&conclusion='o'" checked="checked" />
		<%}else{%>
			<input type="checkbox" name="chercher_embauche" value="&&conclusion='o'" />
		<%}%>
		</td>
		<td>
			Embauche envisagée
		</td>
	</tr>
	<tr>
		<td>
		<%if (chercher_prime=="&&prime!=''"){%>
			<input type="checkbox" name="chercher_prime" value="&&prime!=''" checked="checked" />
		<%}else{%>
			<input type="checkbox" name="chercher_prime" value="&&prime!=''" />
		<%}%>
		</td>
		<td>
			Prime de fin de stage
		</td>
	</tr>
	<tr>
		<td>
		</td>
		<td align="right">
		<br />
			<!--<input type="image" border="0" src="images/search.gif" />-->
			<input type="submit" value="Chercher" />
		</td>
	</tr>
</table>
</form>

<%
 
var req = "SELECT cle,civilite,nom,prenom,type_stage,diplome,j_debut,m_debut,a_debut,j_fin,m_fin,a_fin,duree,agence,tuteur,mission,convention,niveau,diplome,ecole,commentaireA,commentaireB,marque,poste,conclusion,indemnite,prime,suivi_1,suivi_2,suivi_3,suivi_4,suivi_5,suivi_6,suivi_7,suivi_8,suivi_9,suivi_10,date_suivi_1,date_suivi_2,date_suivi_3,date_suivi_4,date_suivi_5,date_suivi_6,date_suivi_7,date_suivi_8,date_suivi_9,date_suivi_10,date_debut,date_fin FROM stagiaires WHERE cle!=''";




if (chercher_embauche=="&&conclusion='o'"){

	req=req.concat(chercher_embauche);	
}

if (chercher_prime=="&&prime!=''"){

	req=req.concat(chercher_prime);	
}

if (chercher_milieu=="&&commentaireA!=''"){

	req=req.concat(chercher_milieu);	
}

if (chercher_fin=="&&commentaireB!=''"){

	req=req.concat(chercher_fin);	
}

if (chercher_convention=="&&convention='true'"){

	req=req.concat(chercher_convention);	
}

	RS = Server.CreateObject("ADODB.RecordSet");
	RS.Open(req,conn,3,1);
	
	
	
		
	while (!RS.EOF)
	{

etc...


En espérant que ça en aide certain !
1