IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[MySQL] Base de donnée avec champs verticaux


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut [MySQL] Base de donnée avec champs verticaux
    Bonjour, et merci pour votre lecture..
    J'ai donc une base de donnée pour un site de gestion d'annonce. Pour consituter la base de données je me suis inspiré de certain CMS open source. Pour pouvoir ajouter un nombre illimité de type de champs par annonce j'ai une table qui regroupe les type de champs et une autre qui stock la valeur de ces champs en fonction de l'id de l'annonce. Mis a part la gestion des sessions utilisateurs j'ai quasiement fini le back office. Maintenant j'aimerai pouvoir exploiter ces données de maniére la plus optimisée possible pour le front_office.

    Ma question est donc quelle methode utiliser pour afficher les annonces et permettre des recherches de type WHERE ville = 'nom de la ville' AND code_postale = 'numero' etc etc.

    Je vois tres bien comment faire ca de maniere la plus optimisé possible quand j'ai une base avec des champs bien determiné comme ville, code postale etc..

    Actuellement pour afficher la liste des annonces je le fais en 2 requetes : je charge la table listing dans array avec comme attribut $array[$id_del'annonce]['nom_de_champ'] puis je fais une seconde requete sur la base annonce. Puis une simple boucle sur cette base.

    Ensuite pour trier avec un 1 arguement je selectionne WHERE listing_libelle like 'la valeur' puis je GROUP BY listing_id_annonce avec liaison vers l'id de la table annonce.

    Je pense pas que ce soit la bonne methode car je suis assez limité dans ce cas la soit je peux trier soit je peux ordonner et je ne vois pas comment faire les deux en meme temps "trier et ordonner en utilisant un type de champs qui n'a pas été selectionné".

    Bref je me perd en explication , je pense que l'architecture de la base sera plus parlante.
    Donc pour faire simple, comment afficheriez vous la listes des annonces en fontion de critéres de recherche qui dépendent de la table listing. Pour mieux vous repérer voila les 2 liaisons importantes à la compréhension : listing.listing_type = liste_champs.list_ch_id et listing.listing_id_annonce = annonce.an_id


  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    Ps : J'utilise MYSQL

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/m...n/metadonnees/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    MErci infiniment j'y vais de ce pas!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Par défaut
    REbonjour.



    Comment puis je faire pour récupérer par exemple :

    Les id "listing.id_annonce" où
    le type de champs "listing type" = '3' et le libelle "listing_libelle" = 'merignac'
    ET
    le type de champs "listing_type" = '4' et le libelle "listing_libelle" = '33700'

    Voila pour selectionner l'id il doit imperativement répondre à ces conditions sinon l'id n'est pas selectionné.
    Pensez vous que ma requete est la plus adapté? pour faire cela (elle fonctionne) :

    SELECT listing_id, COUNT( an_id ) AS nbre_enregistrement, an_id, listing_type
    FROM listing JOIN annonce ON annonce.an_id = listing.listing_id_annonce
    WHERE
    (listing.listing_type = '3' AND listing.listing_libelle = 'merignac')
    OR (listing.listing_type = '4' AND listing_libelle = '33700')

    GROUP BY annonce.an_id having nbre_enregistrement = 2

    MErci beaucoup.

Discussions similaires

  1. Base de données relationnelle-objet avec MySQL
    Par tiger8 dans le forum Administration
    Réponses: 2
    Dernier message: 25/10/2010, 15h26
  2. Lire une base de données access 2007 avec access 2003
    Par gblanchard dans le forum Runtime
    Réponses: 6
    Dernier message: 08/05/2007, 02h59
  3. Base de Donnée contenant image avec Tags.
    Par aygitci dans le forum JDBC
    Réponses: 3
    Dernier message: 13/03/2007, 22h21
  4. php+mysql+base de donnée +recherche
    Par nizar05 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/11/2005, 12h04
  5. Réponses: 1
    Dernier message: 24/11/2005, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo