Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2007, 10h42   #1
Membre à l'essai
 
Inscription : août 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 77
Points : 20
Points : 20
Par défaut Requete SQL, au moins un des critères doit être vérifié

Bonjour,

J'ai un soucis pour créer une requête où au moins un des critères doit être vérifié.
Je m'explique, voici ma requête :
SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
FROM etudiant
WHERE etudiant.promotion LIKE '%colpromotion%' AND etudiant.prenom LIKE '%colprenom%' AND etudiant.nom LIKE '%colnom%'
ORDER BY etudiant.nom


Dans mon formulaire lorsque je rentre un nom présent (ou pas) dans ma base de données et un prénom présent également (ou pas) dans la base de données j'aimerais trouver tous les étudiants possédant ce nom, ce prénom ou les deux.
Le problème c'est qu'avec "AND" tous les critèrs doivent être vérifié. J'ai essayé de remplacer les "AND" par des "OR" mais dans ce cas au moins un des critères doit être vérifé et ainsi si je laisse un champ vide dans le formulaire j'obtiens tous les étudiants dans les résultats.
Comment remédier à ce problème ? ...j'ai pensé instaurer des conditions lorsque les champs du formulaire sont vide, mais ça me paraît difficile.
zeugzeug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h26   #2
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 130
Points : 27
Points : 27
apparement si je comprend bien, tu veux faire une recherche multi critères?? c'est ca??

Pour faire ca, je crois que tu dois faire un test sur les champs de ton formulaires. s'ils sont vides tu les remplaces par une étoile...
toddy_101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h34   #3
Membre actif
 
Inscription : novembre 2006
Messages : 194
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 194
Points : 197
Points : 197
bonjour,
avec quoi tu programmes?
avec des if pour voir si les champs sont vides avant de les inclure dans la requete, ca devrait faire l'affaire
coca25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h36   #4
Membre confirmé
 
Inscription : novembre 2004
Messages : 364
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 364
Points : 202
Points : 202
Et en utilisant des paranthèses ça ne fonctionne pas :
Du style

Code :
1
2
3
4
5
6
7
8
SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
FROM etudiant
WHERE etudiant.promotion LIKE '%colpromotion%' 
(AND etudiant.prenom LIKE '%colprenom%' 
AND etudiant.nom LIKE '%colnom%')
(OR etudiant.prenom LIKE '%colprenom%')
(OR etudiant.nom LIKE '%colnom%')
ORDER BY etudiant.nom;
tazmania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h55   #5
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 130
Points : 27
Points : 27
Je crois que c'est plus simple de remplacer les champs vides par des étoiles...

if(!$champ1) $champ1="*";
if(!$champ2) $champ2="*";

Mais bon à toi de voir
toddy_101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 12h09   #6
Membre à l'essai
 
Inscription : août 2006
Messages : 77
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 77
Points : 20
Points : 20
je programme sur Dreamweaver, je suis encore débutant et j'ai pensé tout faire avec la page "Création" mais apparemment je vais devoir me lancer dans le code...

Oui toddy_101, il s'agit bien d'une recherche multi critères, je vais essayer d'intègrer des conditions comme vous me le proposez...mais j'ai peur de ne pas trop bien m'y prendre (pour preuve je ne sais même pas à quoi correspondent les étoiles). Connaissez vous un site contenant des exemples de recherches multi-critères pour que j'apprenne rapidement ?
zeugzeug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 12h47   #7
Nouveau Membre du Club
 
Inscription : juillet 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 130
Points : 27
Points : 27
désolé zeugzeug, j'ai du confendre avec access

bon voila, au lieu des etoiles tu mets des "%%"

Code :
1
2
3
4
5
6
7
8
 
IF(!$colpromotion)  $colpromotion="%%";
IF(!$colprenom)  $colprenom="%%";
IF(!$colnom)  $colnom="%%";
 
SELECT etudiant.nom, etudiant.prenom, etudiant.promotion
FROM etudiant
WHERE etudiant.promotion LIKE '$colpromotion' AND etudiant.prenom LIKE '$colprenom' AND etudiant.nom LIKE ' $colnom'
Voila, pour moi j'ai testé et ca a marché...

si la variable est vide il la remplace avec %% comme ca tu selectionnes tous les elements n'importe que soit cette variable

c'est comme ca que ca marche la recherche multicritères

BON COURAGE!!
toddy_101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h29.


 
 
 
 
Partenaires

Hébergement Web