cs_PatX
Messages postés34Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention11 mai 2007
-
5 mai 2007 à 08:03
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
5 mai 2007 à 12:53
Bonjour,
J'ai un soucis avec un moteur de recherche dont voici l'objectif : Ma base de données contient un certains nombre de cabriolets classés selon plusieurs critères (nb de places, carburant, type de toit, gamme de prix ...). J'ai donc un moteur de recherche qui doit trouver les cabriolets correspondant à la demande de l'internaute après qu'il ait défini les options de recherche.
Voici comment cela se passe : L'internaute coche les cases qui l'intéressent pour filtrer les résultats, par exemple :
- capote [] capote en toile manuelle
[checked] capote en toile automatique
- carburant [checked] essence
[] diesel
Ce qui retourne tous les cabriolets qui se capotent électriquement et qui roule à l'essence, là pas de problème.
Le soucis : Si je reprends le formuaire, mais en cochant aussi "diesel"
- capote
[] capote en toile manuelle
[checked] capote en toile automatique
- carburant
[checked] essence
[checked] diesel
Cette recherche retourne les cabriolets "capote en toile auto et essence ou diesel" mais aussi les "cabriolets diesel avec capote manuelle"
Pour être cohérent, j'aimerais obtenir tous le cabriolets qui roulent à l'eseence ou au diesel mais seulement parmis ceux qui ont une capote automatique.
Voilà la requete que j'envoi au serveur pour l'exemple précédent : SELECT id_vehicule, id_marque, modele FROM cc_vehicule WHERE
id_toit='2' AND id_carbu='1' OR id_carbu='2' ORDER BY modele ;
cs_PatX
Messages postés34Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention11 mai 2007 5 mai 2007 à 08:32
Scusez, je viens de trouver
Au lieu de : SELECT id_vehicule, id_marque, modele FROM cc_vehicule WHERE id_toit= '2' AND id_carbu='1' OR id_carbu='2' ORDER BY modele ;
Voilà la solution :
SELECT id_vehicule, id_marque, modele FROM cc_vehicule WHERE (id_toit ='2' AND id_carbu= '1' ) OR (id_toit ='2' AND id_carbu='2') ORDER BY modele ;