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

PHP & Base de données Discussion :

sélectionner un seul produit par partenaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut sélectionner un seul produit par partenaire
    Bonjour,
    Je voudrais sélectionner un seul produit par partenaire, sachant que le résultat de la requête peut donner plusieurs produits d’un même partenaire et qu'il ya 3 partenaires (donc je voudrais au max 3 produits).
    J’imaginais qqchose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "select DISTINCT (partenaire),id,nomfrancais,article,prix,image,partenaire from ...
    Mais ça ne marche pas

    Merci de me dire si vous avez une idée

  2. #2
    Membre éclairé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $requete = "select DISTINCT (partenaire),id,nomfrancais,article,prix,image,partenaire from ...
    GROUP BY partenaire

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete = "select DISTINCT (partenaire),id,nomfrancais,article,prix,image,partenaire from ...
    GROUP BY partenaire
    Plusieurs choses,

    La clause DISTINCT s'applique à tous le SELECT et non juste à une colone,

    La clause GROUP BY ne doit être utilisé seulement si l'on souhaite utiliser des fonctions de regroupement (count, sum, ...),

    de plus toutes les colonnes présente dans la clause SELECT qui n'utilise pas de fonction de regroupement doivent être présente dans la clause GROUP BY sous peine de voir apparaître des valeurs aléatoires à chaque exécution de la requête.

    Votre requête devrait alors ressembler à:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT partenaire,id,nomfrancais,article,prix,image,partenaire
    FROM maTable
    WHERE (partenaire, id) IN (SELECT partenaire, MAX(id)
                               FROM maTable
                               GROUP BY partenaire)

    Montrez nous la structure de vos table pour être sur des colonnes à utiliser.

  4. #4
    Membre éclairé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete = "select DISTINCT (partenaire),id,nomfrancais,article,prix,image,partenaire from ...
    GROUP BY partenaire
    Plusieurs choses,

    La clause DISTINCT s'applique à tous le SELECT et non juste à une colone,

    La clause GROUP BY ne doit être utilisé seulement si l'on souhaite utiliser des fonctions de regroupement (count, sum, ...),
    GROUP BY peut être utilisé dans deux sens.
    1) en conjonction avec des fonctions d'agrégation SQL
    2) éliminer les doublons de lignes du jeu de résultats

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    Citation Envoyé par Jcpan Voir le message
    Groupe de peut être utilisé dans deux sens.
    1) en conjonction avec des fonctions d'agrégation SQL
    2) éliminer les doublons de lignes du jeu de résultats
    GROUP BY n'est à utiliser que lorsque vous voulez regrouper plusieurs lignes en un groupe de ligne pour utiliser une fonction de regroupement et rien d'autre ! Utiliser un GROUP BY sans utiliser de fonction de regroupement n'a pas de sens : cours de SQLPro

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut
    bonjour
    c'est parfait , j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete = "select id,nomlatin,nomfrancais,article,prix,image,partenaire from boutique " ;
    $requete.= "where (nomfrancais LIKE '%$nom_arbre2%' OR nomlatin LIKE '%$nom_arbre2%')  ";
    $requete.= "GROUP BY partenaire ORDER BY rand() LIMIT 20";
    et j’obtiens le résultat désiré
    ex : http://www.lesarbres.fr/test4.php
    bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/06/2006, 20h27
  2. [VB.NET]une seule instance par fenetre MDI
    Par pat59 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/02/2006, 11h14
  3. Réponses: 5
    Dernier message: 03/02/2006, 12h12
  4. Sélectionner les items 5 par 5
    Par Coussati dans le forum Langage
    Réponses: 13
    Dernier message: 26/10/2005, 08h12
  5. [MSSQL] Problème pour sélectionner une seule occurence
    Par Tinfolley dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/07/2004, 09h02

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