aodot Posté 14 Septembre 2007 Posté 14 Septembre 2007 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.
rdd Posté 14 Septembre 2007 Posté 14 Septembre 2007 Salut, Avant de regarder du cote de INNER JOIN ou LEFT JOIN (je ne te dis pas de ne pas le faire hein ), 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.
aodot Posté 14 Septembre 2007 Auteur Posté 14 Septembre 2007 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
Portekoi Posté 14 Septembre 2007 Posté 14 Septembre 2007 Dans la mesure du possible, il faut éviter les requêtes imbriquées, très gourmande en ressources
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant