Problème de requête avec des doublons

cs_ines57 Messages postés 15 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 9 juin 2009 - 9 juin 2009 à 14:35
cs_ines57 Messages postés 15 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 9 juin 2009 - 9 juin 2009 à 16:09
Bonjour à tous, j'ai besoin de votre aide. Je ne suis pas très douée en prog web donc soyez indulgents svp...


Voilà, j'ai une partie recherche sur mon site, qui se compte d'un input
text et de 7 listes déroulantes. Quand je fais une recherche sur une
ville en particulier, aucun soucis, il me met une fois chaque résultat.
Mais quand je fais une recherche sur la France, sans spécifier de
région, de département ou de ville, il me met 56 fois la même annonce.
Je vous donne le lien : http://www.immova.fr/accueil.php


Voici ma requête :

$requeteanngrand = "SELECT DISTINCT (ann_no_annonce), ann_titre, ann_prix, pays_nom_pays, reg_nom_region, 	dep_nom_dept, vil_nom_ville, typ_nom_type, ann_nb_pieces, ann_surface, ann_description, util_nom, util_prenom, util_no_tel, ann_photo_1, ann_photo_2, ann_photo_3, ann_no_pays, pays_no_pays, reg_no_pays, dep_no_region, reg_no_region, vil_no_dept, dep_no_dept, ann_no_ville, vil_no_ville, ann_no_utilisateur, util_no_utilisateur, app_no_type, typ_no_type, app_no_appartient, ann_no_appartient, app_no_batiment, bat_no_batiment

FROM annonce JOIN type_annonce JOIN batiment JOIN appartient JOIN utilisateur

LEFT JOIN pays on (pays_no_pays = ann_no_pays)

LEFT JOIN region on (reg_no_pays = pays_no_pays)

LEFT JOIN departement on (dep_no_region = reg_no_region)
LEFT JOIN ville on (vil_no_dept dep_no_dept AND ann_no_ville vil_no_ville)

WHERE app_no_type = typ_no_type

AND util_no_utilisateur = ann_no_utilisateur

AND app_no_batiment = bat_no_batiment

AND ann_no_appartient = app_no_appartient

AND ann_no_annonce = $id_annonce 

GROUP BY ann_no_annonce";




J'ai fait un select DISTINCT sur le numéro de l'annonce afin qu'il me mette une fois chaque annonce et non pas 56 fois ou plus.


Je ne vois pas quoi faire d'autre,


Merci d'avance pour votre aide.

4 réponses

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
9 juin 2009 à 14:56
Juste un conseil un peu bourrin mais qui peut t'aider à débugger.. Tu lances cette requete de ton coté mais avec un Select * ( et tu vires Group By) ainsi tu verras l'info qui différe entre les lignes et donc la table qui te pose souci dans la jointure..
Par contre dans le cadre d'une recherche je ne trouve pas cela très optimisé.. mais bon, c'est mon avis..
S.
0
cs_ines57 Messages postés 15 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 9 juin 2009
9 juin 2009 à 15:46
J'ai fait comme ça et il me met plus rien sauf cette erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND ann_no_pays = 1'

Je viens de migrer sous MySQL 5, penses-tu que ça peut venir de ça cette erreur?
0
cs_ines57 Messages postés 15 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 9 juin 2009
9 juin 2009 à 15:56
J'ai fait comme ça et il me met plus rien sauf cette erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND ann_no_pays = 1'

Je viens de migrer sous MySQL 5, penses-tu que ça peut venir de ça cette erreur?
0
cs_ines57 Messages postés 15 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 9 juin 2009
9 juin 2009 à 16:09
J'ai fait comme ça et il me met plus rien sauf cette erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND ann_no_pays = 1'

Je viens de migrer sous MySQL 5, penses-tu que ça peut venir de ça cette erreur?
0
Rejoignez-nous