Aller au contenu

Requète plusieurs tables


Sujets conseillés

Posté

Bonjour,

Je fais un site pour un ami de location de maisons.

Je vais essayer de vous expliquer clairement le soucis. Je dois pouvoir réaliser une requète par zone et ville.

Voici mes tables :

TABLE OFFRE

id | ville

1 | Paris

2 | Neuilly

TABLE VILLE(le champ zone est récupéré dans une autre table simplement pour l'affichage)

id | zone

1 | 5

2 | 4

J'aimerais avec mon moteur de recherche quand on choisi une zone et une ville que la requête sélectionne les offres par rapport à la zone et la ville.

J'ai effectué cette requète :

$select = "SELECT * FROM offre,ville WHERE offre.categorie='$categorie' AND  offre.ville='$ville' AND offre.type='$type' AND offre.prix BETWEEN '$prix_bas' AND '$prix_haut' AND offre.ville=ville.id ORDER BY '$tri' '$sens'";

Cependant cela ne fonctionne pas. Cela m'indique QUERY WAS EMPTY...

La requète bien sur ne doit pas être bonne. Est impossible de trovuer un bon tutorial sur le LEFT JOIN ou INNER JOIN. Vraiment difficile de trovuer qqch sur google en ce moment.

Merci par avance si vous voyez une petite erreur.

Posté

Salut,

Avant de regarder du cote de INNER JOIN ou LEFT JOIN (je ne te dis pas de ne pas le faire hein :rolleyes: ), je pense qu'il y a un peu plus simple en regardant du cote de IN pour les requetes imbriquees du cote du manuel de mysql.

Cependant il est tout a fait normal que ta requete ne retourne aucun resultat puisque ta derniere comparaison ne se fait pas sur les meme type de champs (tu compares le nom d'une ville avec un id).

En effet, tu test :

 offre.ville=ville.id

Alors qu'il faut que tu fasses plutot (si bien sur tes id zone dans ta table ville correspondent aux id ville dans table ville) :

 offre.id=ville.zone

Apres il me faudrait plus de precision et la description complete de tes tables afin que je puisse t'aider un peu plus (la demande est un peu trop vague et la description des tables n'est pas complete).

Voila, en esperant avoir eclairer ta lanterne.

Posté

Bonjour,

Merci pour votre réponse je vais regarder du côté des IN alors car INNER JOIN etc. c'est quand même assez compliqué...

A propos du test en fait je vais essayer de mieux m'expliquer :

Le champ ville de la table offre est un entier que je compare avec l'id de la table ville dans laquelle il y a le nom de la ville et l'id de la zone.

En fait le INT de la ville (dans la table offre) est le même que le ID dans la table ville qui me permettra de trouve le nom de la ville et l'id de la zone.

J'essaye d'être clair mais c'estpas gagner je pense lol.

Je vous tiens au courant pour le IN.

Merci encore

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...