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

Requêtes MySQL Discussion :

selection doublé ?


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut selection doublé ?
    Bonsoir tous le monde, j'ai un souçi avec une requête sql , en faite je doit récupérer un genre d'articles et afficher le tout.
    J'ai séparer ceux-ci en deux tables :
    db_movie :
    1. id
    2. years
    3. title
    4. post_desc
    5. word

    db_pvehicles:
    1. id
    2. years
    3. pictures
    4. path

    Lorsque je procède a la requete j'ai bien tous ce que je souhaite sauf que si j'ai deux images dans la même année il récupère l'articles 2 fois au lieux d'appliquer les 2 images dans cet article.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT db_movie.years, db_movie.post_desc, db_movie.title, 
      db_movie.word, db_pvehicles.path, db_pvehicles.pictures 
    FROM db_movie JOIN db_pvehicles ON (db_movie.years = db_pvehicles.years)
    Comment faire pour récupérer l'articles complet avec toutes les photos le correspondant .
    Donc pour l'instant j'ai par exemple :
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos01.jpg
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos02.jpg
    Alors qu'il faudrai :
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos01.jpg
    tournage1
    photos2.jpg

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    OK, mais comment affiches-tu les deux db_pvehicles.path et db_pvehicles.pictures si tu n'as qu'une seule ligne pour l'article ?

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Visiblement, ce que tu tentes de faire tient plus de la cosmétique, et un SGBDR n'est pas fait pour ça...
    C'est normal, si il y a deux images dans la table db_pvehicles pour un même article que la requête renvoie 2 lignes. Tu peux tenter une double jointure sur db_pvehicles (la deuxième jointure étant un LEFT JOIN) en compliquant un peu la condition de jointure, mais le même problème se reposera avec 3, 4, 5... images pour un même article.

    Bref, c'est plus à l'application de faire le tri.
    Toutefois, si tu es sûr d'avoir au maximum 2 images par articles, ça reste faisable...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par ced Voir le message
    Toutefois, si tu es sûr d'avoir au maximum 2 images par articles, ça reste faisable...
    Même avec plus d'images en fait, mais j'aimerais avoir la spec de présentation.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Mon client souhaite afficher une filmographie, j'ai alors écris une class php pour gèrer l'application.
    Ceci dit je n'avais pas prévu que le client souhaitais un nombre indéfini d'image par articles.
    Point dfe vue esthétique j'utilise smarty afin de bien séparer le php du html mais c'est un autre contexte.
    Donc comme je vous l'ai dit j'ai :
    l'année ,le titre, une description, le contenu
    Mais je fais une jointure sur une autre table pour récupérer une ou plusieurs images avec leur chemin.
    Le problème étant qu'au lieux de lister toute les images de 2004 dans l'articles je me retrouve avec un articles pour l'année 2004 par photo ce qui franchement n'est pas ce que je recherche.
    Je peux cependant séparer les requêtes mais de toute façon il me faut tous dans la même année.
    Désiré vous un dump de la base ?
    PS: Vous êtes l'auteur du livre mysql5 des éditions micro applications ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Mon client souhaite afficher une filmographie, j'ai alors écris une class php pour gèrer l'application.
    Ceci dit je n'avais pas prévu que le client souhaitais un nombre indéfini d'image par articles.
    Point dfe vue esthétique j'utilise smarty afin de bien séparer le php du html mais c'est un autre contexte.
    Donc comme je vous l'ai dit j'ai :
    l'année ,le titre, une description, le contenu
    Mais je fais une jointure sur une autre table pour récupérer une ou plusieurs images avec leur chemin.
    Le problème étant qu'au lieux de lister toute les images de 2004 dans l'articles je me retrouve avec un articles pour l'année 2004 par photo ce qui franchement n'est pas ce que je recherche.
    Je peux cependant séparer les requêtes mais de toute façon il me faut tous dans la même année.
    OK, mais tu ne me dis toujours pas comment présenter deux images sur une seule ligne. Autrement dit, tant que tu ne sors que les articles, il n'y a pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu
    2007, Bugsy Malone, blablabla, blobloblo
    Mais si tu ajoutes deux images, ça ne rentre plus dans une seule ligne. Donc soit tu conserves le doublon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    année, titre, description, contenu, path, picture
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg, truc.jpg
    2007, Bugsy Malone, blablabla, blobloblo, img/trac.jpg, trac.jpg
    et tu utilises PHP (ou autre) pour corriger l'affichage ensuite.

    Ou bien, tu agrèges les différentes images dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu, path, picture
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg-img/trac.jpg, truc.jpg-trac.jpg
    Dernière solution, tu rajoutes des colonnes, mais ça suppose que tu connaisses le nombre maximum d'images :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu, path1, picture1, path2, picture2,
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg, truc.jpg, img/trac.jpg, trac.jpg
    Citation Envoyé par gtraxx Voir le message
    Désirez-vous un dump de la base ?
    pas la peine, merci !
    Citation Envoyé par gtraxx Voir le message
    PS: Vous êtes l'auteur du livre mysql5 des éditions micro applications ?
    yep !

Discussions similaires

  1. [AJAX] Erreur de raisonnement : double select plus graph en AJAX
    Par MortyDeath dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/11/2007, 15h23
  2. SELECT DISTINCT et double tri
    Par jak0 dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/06/2006, 12h36
  3. Un double Select doublé d un "for each" qui coince
    Par Sparal dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 14h00
  4. [MySQL] Select double et insertion dans fichier
    Par Anakior dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/01/2006, 15h11
  5. double selection impossible
    Par Ghost Dog dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/05/2005, 19h42

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