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 :

requete: table croisée


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Par défaut requete: table croisée
    Bonjour,

    Dans le cadre d'un projet, j'ai besoin de résoudre un problème de SQL. N'y arrivant pas je fait appel à vous.

    Table :

    Orders(Orders_id, Customers_name)
    Orders_products_attributes(Orders_id, Products_options_values)
    Ma question :

    Quels clients ont achetés un produit avec option "soirée des anciens + forum des élèves" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT customers_name 
    FROM orders 
    WHERE ((orders_id FROM orders) = (orders_id FROM orders_products_attributes) AND (products_options_values  FROM orders_products_attributes)='Soirée des anciens + Forum des écoles'
    J'ai fait ca en visitant divers site, mais je me doute bien que la syntaxe doit être douteuse par endroit. Pouvez vous m'aider ?

    Cordialement,
    Jonathan Piquot,

  2. #2
    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 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

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

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

    Ouh là, il y a pas mal d'erreurs dans la requête .
    Un peu de lecture sur le SQL ne ferait pas de mal .

    Sinon, une requête "plus juste" devrait ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT customers_name 
    FROM orders o
    INNER JOIN Orders_products_attributes opa ON o.orders_id = opa.orders_id
    WHERE opa.products_options_values IN ('Soirée des anciens', 'Forum des écoles')
    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

  3. #3
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    En espérant que la table Orders_products_attributes soit en formes normales c'est à dire que la colonne products_options_values ne soit pas un «fourre-tout» contenant plusieurs valeurs concaténées.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Par défaut
    Entre anciens et forum, il y a bien un + (c'est une unique entité)
    En php, j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $reponse4 = mysql_query("SELECT customers_name 
    FROM orders o
    INNER JOIN Orders_products_attributes opa ON o.orders_id = opa.orders_id
    WHERE opa.products_options_values IN ('Soirée des anciens + Forum des écoles')
    ")
     
     
    while($donnees = mysql_fetch_array($reponse4)) 
    {		
    ?>
    ligne29
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php echo $donnees['customers_name']; ?>
     
    <?php
     
    }
     
    mysql_close();


    Mais ca ne marche pas ... J'ai l'erreur :

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in I:\tsi.colmar\test.php on line 29
    Avez vous votre idée ? Je vais potasser les tutoriaux.

  5. #5
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Je le pressentais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE opa.products_options_values LIKE '%Soirée des anciens%' 
    AND opa.products_options_values LIKE '%Forum des écoles%'
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 9
    Par défaut
    La table product_options_attributes contient des données unique. Le + est juste une façon que j'ai eu pour écrire ce que je voulais dire.

    Si vous préférez : Soirée des anciens et forum des écoles


    Dans phpmyadmin la requete fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT customers_name
    FROM orders o
    INNER JOIN Orders_products_attributes opa ON o.orders_id = opa.orders_id
    WHERE opa.products_options_values
    IN (
    'Soirée des anciens + Forum des écoles'
    )
    LIMIT 0 , 30
    Seulement pas en php ...

  7. #7
    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 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Là, ça devient un problème de PHP... Il faut changer de forum.

    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

Discussions similaires

  1. [AC-97] Création d'une table à partir des résultats d'une requete analyse croisée
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/11/2009, 21h46
  2. Requete Table croisée ?
    Par zorglob dans le forum Oracle
    Réponses: 2
    Dernier message: 22/12/2005, 12h18
  3. [CR8.5] Table croisée champs résumés en ligne. Possible?
    Par ccquick dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 19/07/2004, 09h37
  4. [CR8.5] table croisée
    Par sebderijke dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/07/2004, 11h43
  5. [CR .NET] Table croisée: compléter avec lignes vides
    Par kartben dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 29/06/2004, 10h38

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