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 :

Liste de commandes - site marchand


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut Liste de commandes - site marchand
    Salut!

    Je dois faire une requête SQL pour avoir l'ensemble des commandes d'un client précis (code client en variable de session), et je n'arrive pas a la faire fonctionner, la quantité commandée est dans une association.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT c.pdt_ref, c.cde_code, c.quantite FROM contenir c, commandes co
    WHERE co.clt_code=c.clt_code AND co.clt_code=".$_SESSION['CodeClient']." 
    GROUP BY c.pdt_ref, c.cde_code, c.quantite
    Désolé pour balancer la requête comme ça mais je manque de temps pour m'y pencher, je fournirai plus d'infos sur la BDD si necessaire.
    Exprimer une différence d'opinion vaut mieux que :

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    peux tu etre plus précis sur ce qui te pose problème?

    Merci

  3. #3
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    le code SQL me semble bon aussi, il doit nous manquer des infos

  4. #4
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Voilà la définition des champs de la table contenir (association) entre la table COMMANDE et PRODUITS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    quantite INT(11) //quantité commandée
    cde_code INT(11) //clé étrangère code de la commande
    pdt_ref CHAR(3) //clé étrangère référence du produit

    Les champs qui correspondent à des clés étrangères ne sont pas définits en tant que tel, ils sont exactement du même type que les clés primaires dans tables auquelles ils sont reliés.
    Exprimer une différence d'opinion vaut mieux que :

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Beaucoup d'horreur dans votre requête :
    1) GROUP BY ne sert à rien sinon que de faire perdre en perforance votre SGBDR
    2) pour faire des jointures entre les tableson utilise la clause JOIN et le prédicat ON et non un salmigondi dans la clause WHERE !
    A lire sur le sujet : http://sqlpro.developpez.com/cours/s...ointures/#L1.2
    3) pour aller d'une table à l'autre il faut joindre les 3 tables or vous n'en avez précisé que 2. Il faut passer par la table de jointure contenir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT c.pdt_ref, c.cde_code, c.quantite 
    FROM   COMMANDE CMD
           INNER JOIN contenir CTN
                 ON CMD.clt_code = CTN.clt_code
           INNER JOIN PRODUIT PRD
                 ON CTN.pdt_ref  = PRD.pdt_ref 
    WHERE CMD.clt_code=".$_SESSION['CodeClient']."
    Bref, commencez par apprendre le langage SQL. Mon livre comme mo site web peut vous y aider !

    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/ * * * * *

Discussions similaires

  1. [ARM-MIPS] Listings de commandes ? Comparatif ?
    Par Loceka dans le forum Autres architectures
    Réponses: 2
    Dernier message: 26/10/2005, 17h19
  2. Réponses: 15
    Dernier message: 24/10/2005, 09h04
  3. Existe t'il une liste de commande ??
    Par Lwq dans le forum C++
    Réponses: 5
    Dernier message: 20/10/2005, 13h29
  4. Création d'un site marchand
    Par Blue LC dans le forum XMLRAD
    Réponses: 1
    Dernier message: 11/05/2005, 13h27
  5. [DEBUTANT] Création site marchand avec SGBD
    Par plex dans le forum Débuter
    Réponses: 7
    Dernier message: 10/02/2005, 14h19

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