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 :

[SQL] requete en cascade ?


Sujet :

PHP & Base de données

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut [SQL] requete en cascade ?
    Désolé ppour le titre mais je ne sais pas comment m'exprimer ...

    L'environnement:

    J'ai un table article avec en clef primaire le code article ...

    J'ai une table accessoires (codeArt, CodeAccessoire)
    qui indique qules sont les accessoires liés au produit.

    Et une table FiltreMenu(codeArt, IdRubrique)
    qui donne lla ou les rubriques dasn lesquelle l'article doit figurer


    Je dois renseigner la fiche article...

    actuellement je fais une requete sur la table article avec le code de l'article à afficher
    jusque là pas de soucis...
    Là ou ça se corse pour moi c'est que sur cette fiche article je dois proposer la liste de tous les articles dont le champs accessoire est à true précédés d'un checkbox avec les checkbox cochés pour les accessoires déja attribué à l'article...

    même chose pour les rubriques...

    Dois je faire une seconde requete dans la boucle while du fetcharray de la première requete ? ou peut on faire une seule requete?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Membre chevronné Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Par défaut
    Une seule requete en utilisant les jointures de tables. Plus de détails dans la FAQ SQL.

    N'oublie pas que moins tu fais de requetes mieux c'est. Donc une requete dans une boucle est a éviter autant que possible.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Je me doutais bien que des JOIN pourraient faire le taff .. et je pensais que ce forum m'aurais permis d'avoir un bout de syntaxe sasn me faire jeter direct vers la FAQ ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre chevronné Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Par défaut
    slt...

    Comme il manque des infos... et tu demande un bout de syntaxe ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT a.idArticle,b.codeaccessoires,b.CHAMP_INCONNUE FROM article a
     left join accessoires b on a.idarticle=b.codeart
     where CHAMP_INCONNUE =true;
    ou un truc du genre

  5. #5
    Membre éprouvé
    Avatar de debug
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    1 034
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 034
    Par défaut
    Alors après discussion sur le chat avec Spafy j'ai des éléments...

    La table Article est constitué de ça(je nomme seulement ce qui nous est utile) :
    Code Article
    isAccessoire_Art (binary)

    Je te propose ça pour tes accessoires :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Article_IsAccessoire.CodeArticle AS CodeAccessoire, Article_IsAccessoire.Libelle AS LibelleAccessoire, Accessoire.CodeArticle AS CodeArt FROM Article AS Article_IsAccessoire LEFT JOIN Accessoire ON Article_IsAccessoire.CodeArticle = Accessoire.CodeAccessoire
    WHERE (((Accessoire.CodeArticle)=ArticleAAfficher) AND ((Article_IsAccessoire.isAccessoire_Art)=True)) OR (((Accessoire.CodeArticle) Is Null) AND ((Article_IsAccessoire.isAccessoire_Art)=True));
    Ca t'affiche :
    Col1 : Le code de l'accessoire
    Col2 : le libelle de l'accessoire
    Col3 : le code de l'article si l'accesoire est coché (renseigné dans la base quoi )

    En mode tabulaire tu auras, si on admet que tu as 4 accessoires et que ton article à l'accesoire 2 et 4 activés :
    1 | accessoire 1 |
    2 | accessoire 2 | ArticleAAfficher
    3 | accessoire 3 |
    4 | accessoire 4 | ArticleAAfficher

    Donc pour tes rubriques : tu fais une seconde requete, sur le même principe. En remplacant la table Article par ta table rubrique.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Voici ce que l'on m'a proposé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Accessoire.CodeArticle, Article_IsAccessoire.CodeArticle AS CodeAccessoire, Article_IsAcc
    essoire.Libelle AS LibelleAccessoire
    FROM Article AS Article_IsAccessoire LEFT JOIN Accessoire ON Article_IsAccessoire.CodeArticle = Accessoire.C
    odeAccessoire
    WHERE (((Accessoire.CodeArticle)=4) AND ((Article_IsAccessoire.isAccessoire_Art)=True)) OR (((Accessoire.CodeArticle) Is 
    Null) AND ((Article_IsAccessoire.isAccessoire_Art)=True));
    mais il faut maintenant que j'y ajoute les rubriques du menu ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [Postgre Sql] requête pour suppression en cascade
    Par viny dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/10/2006, 23h39
  2. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 11h06
  3. [SQL] requetes inbriquées, comment faire celle ci??
    Par Devil666 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/05/2005, 15h44
  4. Sous requete en cascade ou curseur ??
    Par HULK dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 31/12/2004, 09h56
  5. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24

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