|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Salut,
J'ai une table tâches se présentant comme ceci : 1 | 100 | - 2 | 100 | 1 3 | 45 | - 4 | 30 | 1,2,3 Colonne 1 : numéro de tâche Colonne 2 : pourcentage d'avancement de la tâche Colonne 3 : idx_tache pour connaitre l'état d'avancement d'une tache ayant besoin de tâche préalablement fini Statut_tache correspond à l'avancement de mes tâches qui se calcule en fonction de mes idx_taches Si statut_tache est égale à 0 alors ca veut dire que ma tâche est en attente si elle est comprise entre 1 et 99 ca veut dire qu'elle est en cours et 100 terminé. Prenons l'exemple de ma tâche 4, pour qu'elle soit fini à 100% il faut que les tâches 1,2 et 3 soient fini à 100%. Si la tâche 1 est terminé, mais que la tâche 2 et 3 est en cours alors le statut de ma tâche 4 sera "en cours". Je ne suis pas très claire, mais j'espère que vous comprendrez un minimum. Ce que je souhaites faire c'est récupérer les idx_taches de chacune de mes tâches et analyser leur statut(un par un) pour donner un et un seul statut ! voici mon code : Code :
|
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Ta structure n'est pas bonne.
Il faut une table qui recense les relations. id - tache - relation 1 - 2 - 1 2 - 4 - 1 3 - 4 - 2 4 - 4 - 3 En une requête tu peux par exemple avoir le nombre de taches liées et non terminées : Code sql :
Code sql :
|
||||
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Merci de ta réponse sabotage, c'est vrai que c'est plus cohérent d'avoir une table relation je n'y avais pas pensé...
j'ai donc mis en place ma nouvelle table, j'affiche correctement le statut et les relations... et je voudrais un autre conseil... comment ferais-tu pour "regrouper" mes relations c'est à dire par exemple : id - tache - relation 1 - 2 - 1 2 - 4 - 1 3 - 4 - 2 4 - 4 - 3 Prenons la tâche 4 qui aura qu'un statut(en cours, en attente ou terminé) si la 1,2,3 sont en attente, alors la 4 sera en attente, si une des trois relations est en cours alors la 4 sera en cours, si elles sont terminées alors la 4 sera terminée. Je dois faire une requête pour chaque état ? ou y-a t-il une solution plus simple ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Le plus simple est de lire les états de toutes les tâches liées
Code :
|
||
|
|
00
|
|
|
#5 | ||||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
J'ai modifié ce code :
Code :
Code :
Par contre ca ne le fait pas pour chaque tâche, je voudrais par exemple l'état de chacune de mes tâches la il regroupe tous mes tâche en un... |
||||
|
|
00
|
|
|
#6 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Ce n'est pas logique : si tu as même une seule tâche en attente, tout ton projet est en attente ; mais bon ce n'est plus une question de code.
Pour le reste, l'idée était de determiner l'état d'une tache en fonction de taches liées, c'est bien ça que tu voulais non ? |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
1) Et non parce que si j'ai une tâche en attente et une tâche en cours, mon projet est "en cours" et non en attente étant donné qu'il as démarré une tâche...
2) Oui c'est bien cela que je voulais... dans ma base de données pour l'instant j'ai deux tâches avec des tâches liées, donc je voudrais afficher l'état de ces deux tâches en fonction des tâches liées de chacunes d'elles... |
|
|
00
|
|
|
#8 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Regarde ce que te donne une requête comme ça :
Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Euh je comprends pas la requête.. .je construis jamais mes requêtes avec des left join...
Pourquoi mettre a.id = 4 ? Voila la requête que j'ai actuellement : Code :
tableau_bord.tableau_int = id des tâches relation.relation = les tâches liées. |
||
|
|
00
|
|
|
#10 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
|
|
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Ah d'accord,
donc du coup revenons à nos moutons, comment faire pour afficher le statut de chacune de mes tâches en fonction des tâches liées ? ma requête me semble correcte mais étant donné que la vérif se fait en dehors du while, il prends en compte qu'une seule tâche mais si je le met dans le while il va m'afficher autant de fois "en attente" qu'il y a de tâche en attente... |
|
|
00
|
|
|
#12 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Ta requête n'est pas bonne elle ne remonte pas l'avancement des taches liées (et la syntaxe de ta jointure est fausse).
|
|
|
00
|
|
|
#13 | ||||||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Ma requête donné plus haut me donne ca comme résultat :
Code :
Code :
Code :
EDIT : tableau_statut = avancement provenant de ma table tableau_bord |
||||||
|
|
00
|
|
|
#14 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
Regarde la requête que je t'ai proposée. |
|
|
|
00
|
|
|
#15 | ||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Au risque de paraitre un peu niaise
![]() je ne comprends pas les requêtes avec les JOIN Code :
|
||
|
|
00
|
|
|
#16 | ||||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
par exemple au lieu de
Code :
Code :
|
||||
|
|
00
|
|
|
#17 | ||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Oui ca j'avais compris c'est le left join que j'avais pas captée...
ca me donne le même résultat que ma requête précédente : Code :
|
||
|
|
00
|
|
|
#18 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Le left join retourne les éléments de la table a gauche même s'ils n'ont pas de correspondance dans la table à droite.
|
|
|
00
|
|
|
#19 | ||||||
|
Membre actif
![]() Mélanie Inscription : novembre 2008 Messages : 275 ![]() |
Ah d'accord, mais de toute façon les les tâches que j'ai dans ma table relation sont forcément dans la table tableau_bord, le left join me sert-il ?
Désolé de poser des questions stupides, mais je connais vraiment pas cette syntaxe pour les requêtes, je suppose que cette syntaxe est mauvaise : Code :
ou peut etre celle la : Code :
Code :
|
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com