|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
bonjour,
je suit en train de créer un formulaire de recherche qui permet de chosir plusieur critère. Le truc c'est que je n'arrive pas à obtenir les enregistrements que je veux. En gros mon code est le suivant Citation:
avez vous une idée? d'avance merci |
|
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : mai 2003 Messages : 361 ![]() |
est ce que tu as un message d'erreur?
fais: echo ($rsdonneesBd); |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
je n'ai pas de message d'erreur, je voudrais juste qu'il ne me renvoi pas tous les enregistrements des que je fais une requete. alors y aurit t'il méthode pour qu'il vérifie les champs renseigner et qu'il me retourne tous les article qui concerne le departement 44 du mois d'avril par exemple.
Est ce que je suis clair? je dois y aller, je vérifierai vos réponse demain. merci encore |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
deja je te conseille d'abandonenr le sprintf
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
merci de ta réponse boo64 mais je ne vois pas pourquoi je devrai enlever le "sprintf" et ensuite ma question était comment faire pour ne pas avoir une requete trop restrictive ou trop large pour que les enregistrements que j'obtient soit pertinent.
Si je place dans ma requete que des AND entre chaque condition, je n'obtient aucun résultat et si je place que des OR j'obtient tous les enregistrement de la base. y'aurait il une solution a ce problème ou est ce que ma base a été ma crée? j'avoue que je suis un peu perdu. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Étudiant Inscription : septembre 2005 Messages : 220 ![]() |
si tu as du mal avec le sql regardes ca:
http://eric.univ-lyon2.fr/~jdarmont/tutoriel-sql/ sinon précises ce que tu veux que ta requete face . merci |
|
|
00
|
|
|
#7 | |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
il semble que tu aies besoin de travailler ton sql : http://sql.developpez.com/.
Citation:
- AND : toutes tes conditions doivent être vraies - OR : 1 seule condition doit être vraie |
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
Merci pour ton tuto.
En fait j'ai créer un formulaire de recherche avec différents champs ( à completer ou liste déroulante). l'utilisateur peut s'il le souhaite ne remplir qu'une partie de ces champs. Prenons un exemple, il sélectionne dans le menu déroulant support "le journal des entreprise" puis dans le menu déroulant région " région pays de la loire". mais il laisse les autres champs vide car il veut effectuer une recherche sur tous les numéros du journal des entreprise qui sont paru dans les pays de la loire. c'est a ce moment la que ma requete entre en jeu. j'aimerais que meme si je n'est pas completer tous les champs du formulaire, elle me retourne les enregistrements concernés. Le truc c'est que j'ai beau manipuler ma requete en remplacant AND par OR ou encore en les mélageant dans ma requete rien n'y fais, je suis toujours face au meme probleme. soit ma requete ne me retourne aucun enregistrement (que des AND) soit elle me retourne tous enrgistrement (que des OR). voila ce que j'attend de ma requete. j'espère avoir été clair |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
laisse le soin à l'utilisateur de choisir dans une liste déroulante "ET" ou "OU" entre tes critères de recherche, que tu traduis par "AND" ou "OR" dans ta requete, tout en ignorant les critères de recherche qui n'ont pas été utilisés.
|
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
Comment puis-je traduire ce choix de ET/OU depuis mon formulaire vers ma requete en SQL et ensuite comment faire pour ignorer les champs non renseignés?
|
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
tu fais une liste déroulante ET/OU dans ton formulaire entre tes critères (e.g. support ET/OU région ET/OU....)
J'imagine que tu as un nombre de critères limité? Pour ne pas prendre en compte les critères non modifiés, il faut sans doute que tu jous avec la valeur par défaut de chaque critère....e.g. par défaut pour chaque liste déroulante tu sélectionnes le mot "Choisissez...". SI au moment du traitement de ton formulaire tu trouves la valeur "Choisissez.., cela signifie que l'utilisateur ne l'a pas utilisé pour sa sélection.... |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
oki je vois comment faire mais le truc c'est que j'ai une douzaine de critère. donc l'uitilisateur ne va pas s'amuser a faire un choix de ET OU à chaque fois.
|
|
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
et bien à ce moment là, une autre solution est peut-être l'utilisation d'AJAX, ou un rechargement de formulaire.
Pour chaque critère sélectionné, tu fais une vérif dans ta base de données et tu mets à jour tes listes déroulantes pour n'afficher que les critères correspondant aux critères que l'utilisateur a sélectionné....je ne sais pas si je suis clair.... |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
je te deconseille le sprintf pasque il est quand meme lourd alor que ca revient au eùe et est plus lisible enfin c'est que mon avis
$req ="select a,b from matable where a = $mavariable" avec $mavariable entre cote si c'est une chaine de caractere
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
+1 avec Boo abandonne le sprintf qui est une horreur niveau lisiblité (et don débuggage), d'ailleurs on te l'avait déjà dit dans un autre topic
Perso je pense pas qu'il faille s'embêter avec des OR / AND, ce que tu veux c'est juste une requête avec un nombre variable de conditions (donc avec que du AND). L'idée est la suivante (en algo) : Code :
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
||
|
|
00
|
|
|
#16 | |
|
Membre émérite
![]() |
Citation:
Il te faut construire ta requête dynamiquement suivant les sélections effectuées par les utilisateurs sur tes divers champs, j'avais déjà répondu à 1 ou 2 posts dans le style pour des recherches de biens immobiliers je vais essayer de retrouver ça ! EDIT : voilà l'exemple typique de ce qu'il faudrait que tu fasses http://www.developpez.net/forums/sho...d.php?t=187040 PS: laisse vraiment tomber le sprintf à relire c'est IMPOSSIBLE
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
oui mais ce qu'il ne veut pas apparamment, c'est un retour "vide"...or avec uniquement des AND entre chaque critère, il y aura des moments où la requête ne renverra rien...
A benoitinfrance de préciser ce qu'il veut exactement.... |
|
|
00
|
|
|
#18 | |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Citation:
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
|
00
|
|
|
#19 | |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
je disais ça par rapport aux premiers posts de benoitinfrance sur ce thread, où il disait
Citation:
moi j'ai interprété le besoin de benoitinfrance comme : je veux que a requête génère toujours des résultats (pertinent bien sûr). Donc si on crée une requête dynamique suivant les choix de l'utilisateur (admettons qu'il utilise les 12 critères à sa disposition), il y a de fortes chances que la requête créée ne renvoie aucun enregistrement.... Edit : aprtès relecture ma citation n'est pas pertinente et j'ai peut-être mal interprété le besoin... |
|
|
|
00
|
|
|
#20 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2005 Messages : 78 ![]() |
pour le sprintf, il est vrai que j'avais déjà eu le conseil mais étant donné que ca marchait comme ca je ne voyais pas l'intéret de changer. maintenant sous la pression générale j'ai fais la modification.
en ce qui concerne le retour de ma requete je suis d'accord avec JWhite quand il dit que si rien est sélectionner, je veux tous les enregistrements. Par contre pour ton algo JWhite, je n'est pas tout saisi, pourrais tu m'expliquer un peu lus en détail: Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com