Page 1 sur 1

Interdire l'affichage de doublon

Posté : 13 mars 2015, 16:48
par Magalux
Bonjour à tous,

J'aimerais savoir si il est possible d'interdire l'affichage de doublons sur une page php.

Je m'explique, j'ai sur mon site immobilier une page "nouveautés" qui affiches les dernières maisons modifiées ou ajoutées, quelque soit la catégorie du bien (moins de 150 000 €, plus de 400 000 € etc).

Parfois un bien peut figurer dans 2 catégories distinctes (ex Grange / moins de 150 000 €).

Du coup sur la page nouveautés, il apparaît 2 fois, même si en réalité il n'y a qu'une annonce en base de données.

Comment puis-je faire pour empêcher les doublons ?

Merci

Re: Interdire l'affichage de doublon

Posté : 13 mars 2015, 17:15
par tof73
le mieux est de modifier la requete sql pour qu'elle ne retourne pas de doublon.
après, cela peut être plus simple, dans la boucle d'affichage des nouveautés, de n'afficher le bien que si l'id n'est pas déjà présent dans un tableau, puis de mettre l'id du bien dans le tableau.

Re: Interdire l'affichage de doublon

Posté : 13 mars 2015, 17:57
par Magalux
Donc en gros voici comment se présente ma page nouveautés :

Annonce 1 :
<table>
    <tr> <!--image principale-->
        <td rowspan="4"> balises php image </td> 
    </tr>
    <tr> <!--réf/prix-->
        <td> balises php référence </td>
        <td> balises php prix </td> 
    </tr>
    <tr> <!--details-->
        <td colspan="2"> balises php type de bien, nbr chambres, superficie terrain </td> 
    </tr>
    <tr> <!--description-->
        <td colspan="2"> balises php texte pub </td> 
    </tr>
    <tr> <!--table_gallery-->
        <td colspan="3"> balises php galerie lightbox </td>    
    </tr>
</table>
Annonce 2 : Idem etc

Donc chaque bien est dans une table distincte de l'annonce suivante/précédente.
Je vois ce que tu veux dire dans ta 2è solution (qui me paraît plus à ma portée :D ) mais quelle est la syntaxe d'une telle formule conditionnelle ?
Merci

Re: Interdire l'affichage de doublon

Posté : 14 mars 2015, 08:58
par sirakawa
Je dirais plutot que c'est une mauvaise conception de la base de donnees qui est responsable :le même bien ne devrait y être enregistré qu'une fois:
que se passera-t-il quand il sera retiré de la vente, ou s'il change de prix?

Re: Interdire l'affichage de doublon

Posté : 14 mars 2015, 10:31
par Magalux
En faite il y a plusieurs tables avec des jointures :

- houses (où se trouvent toutes les maisons avec un id unique et leurs caractéristiques techniques)
- main_categories (où sont toutes les catégories avec un id unique)
- categories (où sont toutes les maisons et leur catégorie associée)

Donc chaque maison ne figure qu'une seule fois en table houses, mais peut figurer plusieurs fois en table categories.
Sur le site, par contre du coup elle ressort plusieurs fois : une fois dans chaque catégorie où elle est associée, et donc 2 fois sur la page nouveautés qui elle est toutes catégories confondues.

Si le bien est retiré de la vente, ou que le prix est modifié, les changements s'effectuent sur toutes les vues de l'annonce.

Re: Interdire l'affichage de doublon

Posté : 14 mars 2015, 12:35
par sirakawa
Dans categories, il n'y a que des liens entre houses et main_categories ?
Une requete bête sur houses avec une jointure devrait faire l'affaire

Re: Interdire l'affichage de doublon

Posté : 27 mars 2015, 17:31
par Magalux
Bonjour, désolée je ne m'y remets que maintenant, j'ai eu beaucoup de boulot à l'agence.

Donc effectivement dans categories, ne figure que les liens entre houses et main_categories, la table s'organise comme suit :

Image