à simplifier... dur dur

cs_Mathusalem Messages postés 27 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 6 mars 2005 - 8 août 2003 à 13:57
cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006 - 13 août 2003 à 03:12
Bonjour, j'ai ce genre de code (voir ci dessous)
et j'aimerai faire plus simple, mais je vois pas trop comment...
là ça marche avec 3 paramètres, mais je compte en mettre plus... et ça va vite de venir énorme.
voilà :) si qqn à une idée, ça serait sympa

<cfif #form.titre# is 0 and #form.cat# is 0 and #form.nat# is 0>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
</cfquery>
<cfelseif #form.titre# is 0 and #form.cat# is 0 and #form.nat# is 1>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND nat = #form.nat#
</cfquery>
<cfelseif #form.titre# is 0 and #form.cat# is 1 and #form.nat# is 0>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND categorie = #form.cat#
</cfquery>
<cfelseif #form.titre# is 0 and #form.cat# is 1 and #form.nat# is 1>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND categorie = #form.cat#
AND nat = #form.nat#
</cfquery>
<cfelseif #form.titre# is 1 and #form.cat# is 0 and #form.nat# is 0>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND titre = #form.titre#
</cfquery>
<cfelseif #form.titre# is 1 and #form.cat# is 0 and #form.nat# is 1>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND titre = #form.titre#
AND nat = #form.nat#
</cfquery>
<cfelseif #form.titre# is 1 and #form.cat# is 1 and #form.nat# is 0>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND titre = #form.titre#
AND categorie = #form.cat#
</cfquery>
<cfelseif #form.titre# is 1 and #form.cat# is 1 and #form.nat# is 1>
<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
AND titre = #form.titre#
AND categorie = #form.cat#
AND nat = #form.nat#
</cfquery>
</cfif>

1 réponse

cs_lfontaine Messages postés 203 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 11 mai 2006
13 août 2003 à 03:12
Eh ben, tu as du t'amuser avec le copier coller, avec 6 ou 7 variables, ton code va faire plus d'un Meg !!!

je testerai un truc du style:

<cfquery name="listsign" datasource="223r-002petition">
SELECT comptes.Numcompte, comptes.nom, comptes.prenom, comptes.organisation, comptes.email, comptes.adresse,
categories.libcategorie, signer.commentaire, signer.datesignFROM categories INNER JOIN (comptes INNER JOIN signer ON comptes.Numcompte signer.numcompte) ON categories.Nocat comptes.categorie
WHERE signer.numpet=#session.numpet#
<cfif form.nat EQ 1> AND nat = #form.nat#</cfif>
<cfif form.cat EQ 1> AND cat = #form.cat#</cfif>
<cfif form.titre EQ 1> AND titre = #form.titre#</cfif>
</cfquery>

Tu peux aussi creer une liste "nat,cat,titre" et faire une boucle au lieu de retaper 3 fois le meme cfif

Laurent
0
Rejoignez-nous