Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 06/02/2008, 10h15   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 27
Points : 27
Par défaut [SQL] Comment feriez-vous cette requête pour une recherche ?

Bonjour,

Voici mon modèle :


Explication :
- Un hôtel est situé dans une région et dans un département.
- Une région est composée de plusieurs départements.
- Un département est situé dans une région.
- Un hôtel peut avoir plusieurs services.
- Un hôtel peut avoir plusieurs accès.
- Un service peut être utilisé par plusieurs hôtels.
- Un accès peut être utilisé par plusieurs hôtels.

Le problème :
Je dois réaliser une requête pour récupérer des informations sur les hôtels correspondant aux paramètres de la recherche.

La recherche :
Elle a comme paramètres :
- Le nom de l'hôtel (attribut de la table "hotel")
- La région de l'hôtel (attribut de la table "region")
- Le département de l'hôtel (attribut de la table "department")
- La ville de l'hôtel (attribut de la table "hotel")
- Une liste de services à cocher (choix multiples)
- Une liste d'accès à cocher (choix multiples)

La difficulté :
Comment est-ce que je fais pour récupérer les hôtels qui correspondent par exemple au nom d'hôtel, à la région choisie et aux différents services cochés ?

Je ne vois pas du tout comment faire cela ?
Peut-être que je mis prend mal ?

Merci
Core8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 10h31   #2
Membre habitué
 
Avatar de thanathz
 
Inscription : mars 2002
Messages : 147
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 147
Points : 127
Points : 127
Envoyer un message via ICQ à thanathz Envoyer un message via AIM à thanathz Envoyer un message via Yahoo à thanathz
Des jointures non?
ET pourquoi tu as une liaison région-hotel?
ton hotel est dans un département qui lui-même appartient à une région... donc si tu choisi juste une région ta liste d'hotel, tu l'opbient par département.

plus concretement pour la jointure tu fait un truc comme ça

Code :
1
2
3
4
5
6
7
$sql="SELECT tes_doonées
FROM hotel";
$where = "WHERE nom like '%plage%'";
if($service) {
$sql.="INNER JOIN link_h_s ON (hotel.id=link_h_s.hotel) ";
$where = "and departement='41' and service IN (12, 2, 4)";
}
et en fait tu construis ta requete selon les données que tu reçois (je sais pas si je suis clair)
thanathz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 10h44   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 27
Points : 27
Merci beaucoup pour ta réponse thanathz.

Au temps pour moi pour la région, je l'avais mis mais c'est vrai je n'en ai pas besoin.

Je vais essayer la requête que tu m'as indiqué. Je pensais faire comme ça mais j'avais réfléchi et je m'étais dis que ça ne pouvait pas marcher.
Core8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 11h58   #4
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 120
Points : 27
Points : 27
Encore merci thanathz.

La requête marche pour un test simple. Maintenant place au gros test.
Core8 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 18h42.


 
 
 
 
Partenaires

Hébergement Web