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 :

Problème de condition dans le SELECT


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Problème de condition dans le SELECT
    Bonjour,

    Je dispose des tables suivantes:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    CREATE TABLE REQUEST
    (
    	id_req int,
                 Task varchar(10),
    	WP varchar(10),
    	PRIMARY KEY (id_req)
    );
     
    CREATE TABLE SUB_TASK
    (
    	id_sub_task int,
    	Sub_Task varchar(200),,
    	WP varchar(10),
    	PRIMARY KEY (id_sub_task)
    );
     
     
    CREATE TABLE SUB_TASK_LINK
    (
    	id_req int,
                 id_sub_task int,
    	PRIMARY KEY (id_req,id_subtask)
    );

    Je dois faire une requete qui récupère les valeurs du champs Task si la valeur du champs WP de la table REQUEST vaut WP1 et/ou si le champs WP de la table SUB_TASK vaut WP1. Mon problème est que pour un id_req donné il peut y avoir plusieurs id_sub_task (donc plusieurs WP pour SUB_task: dans ce cas là tous doivent être égaux à WP1).
    Si vous avez des idées, toutes sont les bienvenues.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut


    j'ai rien compris ou alors c'est que tes tables sont mal structurées.

    Pour chaque request, il ya plusieurs sub_task, c'est bien ça ? et WP est un attribut d'une request ou d'une sub_task ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    oui c tout à fait ça tu as très bien compris.

    Je vais essayer d'expliquer plus clairement ce que représente mes tables. Les utilisateurs formulent des requetes pour lesquelles ils peuvent affecter une tache et une ou plusieures sous taches. Chaque tache et sous tache appartient à un Work Package(WP). Les champs taches et sous tache ne sont pas obligatoirement renseigné. Le but de mon select est donc de récupérer les requetes appartenant au WP1. Pour qu'une requete appartienne au WP1 il faut soit que le WP de la table request soit égal à WP1 soit que tous les WP des sous taches assaciés à cette requetes soit égaux à WP1.
    Voilà je sais pas si c'est plus clair?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon je résume, histoire de voir si j'ai bien compris. Mais je crois qu'il ya un souci au niveau de la stucture de tes tables.

    Une requete est identifiée par son id, a comme attributs Task (son nom? ce a quoi elle sert ?) et le nom du WP auquel elle appartient, et est "constituée" de plusieurs sous-taches.
    Une sous-tache est identifée par son id, a comme attribut le WP auquel elle appartient et subtask (son descriptif)

    Questions : où est le lien entre requete et sous-tache ? N'y a-t-il pas redondance au niveau du WP (dans requete et dans subtask) ? Que se passe-t-il si une requete a des sous-taches qui ont des WP différents ?

    (je pose toujours beaucoup de questions, c'est comme ça que je fais avancer le problème )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    t'inquiètes pas tes questions sont très pertinentes et tu vois de mieux en mieux le problème.

    Citation Envoyé par Celira
    Une requete est identifiée par son id, a comme attributs Task (son nom? ce a quoi elle sert ?)
    Task est le nom de la tache sur laquelle porte la requete (cependant il n'est pas forcément renseigné par l'utilisateur qui préfèrera des fois remplir le champs sous tache car il est plus détaillé(pb: l'utilisateur peut cocher plusieurs sous taches dans la liste).

    [quote=Celira]où est le lien entre requete et sous-tache ?[/CODE]
    Le lien se trouve dans la table SUB_TASK_LINK ( id_req, id_sub_task)

    Citation Envoyé par Celira
    N'y a-t-il pas redondance au niveau du WP (dans requete et dans subtask) ?
    Mon problème est de classer les requetes par WP, seulement si le champs Task était obligatoire il n'y aurait pas de pb j'aurais seulement la valeur WP dans la table REQUEST. Seulement dans mon cas si Task n'est pas complété je dois me pencher sur le champs sub_task pour déterminer le WP.
    Le formulaire étant prédéfini dans mon entreprise je ne peux pas modifier les champs donc je ne peux pas mettre le champs Task obligatoire par exemple.

    Citation Envoyé par Celira
    Que se passe-t-il si une requete a des sous-taches qui ont des WP différents ?
    Les administrateur empechent cette possibilité lors de l'entrée des requetes par les utilisateurs

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par nicocaine
    Citation Envoyé par Celira
    où est le lien entre requete et sous-tache ?
    Le lien se trouve dans la table SUB_TASK_LINK ( id_req, id_sub_task)
    Cette structure sous-entend qu'une même sous-tache (une seule id_sub_task) peut appartenir à plusieurs requêtes. C'est bien le cas ?

    Je crois que le plus simple pour toi, ce serait de prendre lors de la création de la requête la valeur du WP d'une sous-tache et de l'insérer dans la requête. Comme ça tu n'aurais plus qu'à sélectionner les requêtes ayant le WP que tu veux, en faisant une jointure sur les sous-taches.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Interbase: Problème de case dans un SELECT
    Par mameziane dans le forum InterBase
    Réponses: 16
    Dernier message: 18/11/2007, 11h34
  2. Problème de condition dans SELECT
    Par nicocaine dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/06/2007, 14h06
  3. problème de condition dans une macro
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 15/05/2006, 11h22
  4. [débutant] problème de condition dans une requete
    Par banker dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 13h52
  5. Réponses: 6
    Dernier message: 17/08/2005, 12h38

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