Aide Algorithme ...

Résolu
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 10 sept. 2007 à 11:38
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 10 sept. 2007 à 16:15
Bonjour,
Je viens vers vous pour vous demander un conseil ...
bon voilà mon probleme,
j ai 3 tables MySQL : "Taches, User, Affaire et Fonction ".
je veux selectionner des taches effectuees selon une fonction, c est a dire, si je selectionne une fonction et une affaire,
j aurai seulement les tâches des utilisteurs qui appartiennent à cette fonction.

Voilà l algo que j ai met en oeuvre : (mais , je pense pas qu il est à la hauteur)
//les variables passé en arguments : $id_fonction et $id_affaire
Sélétionner tous les utilistateurs qui appartiennent à cette fonction,
// select id_utilisteur from user where id_fonction="$id_fonction.
//while($array(mysql_fetch_array($reqUser))
{
Séléctionner les tâches celon l'affaire et et l utilisateur.
//select tache, date,... from taches where id_utilisateur= $array[id_utilisateur] and $id_affaire=$id_affaire.
faire un while et afficher les resulat
{
}
}

est ce que vous avez un algo plus pratique,
j ai pensé a faire comme suit : ajouter un champs id_fonction dans la table "taches", comme ça la selection sera facile.
merci pour vos aides
N'importe où. 
mais là où il le faut.

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 sept. 2007 à 12:32
hello,

SELECT t.tache, t.date, ... FROM taches t
LEFT JOIN utilisateurs u ON u.id_utilisateur = t.id_utilisateurWHERE t.id_affaire $id_affaire AND u.id_fonction $id_fonction
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
10 sept. 2007 à 13:31
Merci pour ta reponse,
j ai un petit souci, lorsque ,
j ai fait :
$queryFct=mysql_query(' votre requette');
while($array=mysql_fetch_array($queryFct)>0)
{
            $id_user=$array['t.tache']; // ça n afffiche rien,
}
comment recuperer les resultats  ?
merci encore une fois cher ami

N'importe où. 
mais là où il le faut.
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
10 sept. 2007 à 13:39
bon, voilà ma requette :

$queryFct=mysql_query("SELECT e.id_travail,e.date_eff,e.duree,e.id_user FROM effectue e LEFT JOIN user u ON u.id_user=e.id_user WHERE e.id_aff=".$id_aff." AND u.id_fonction=".$id_fonction)or die(mysql_error());

while($array=mysql_fetch_array($queryFct)>0)
            {
            $id_user=$array['id_user'];
            //Les noms
            $req_user=mysql_query("SELECT nom,id_ste from user where id_user=".$id_user) or die(mysql_error());
            $user=mysql_result($req_user,0,"nom");    //le nom du collaborateur
...
}
ça me donne une erreur mysql au niveau de la requette, et lorsque j ai verifié j ai trouvé que $array['id_user'] est vide !
merci pour ton aide.
N'importe où. 
mais là où il le faut.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 sept. 2007 à 14:50
Tu ne dois pas utiliser les alias dans la récupération des données.

<?php
$queryFct=mysql_query("SELECT e.id_travail,e.date_eff,e.duree,e.id_user, u.nom, u.id_ste FROM effectue e LEFT JOIN user u ON u.id_user=e.id_user WHERE e.id_aff=".$id_aff." AND u.id_fonction=".$id_fonction)or die(mysql_error());

while($array=mysql_fetch_array($queryFct, MYSQL_FETCH_ASSOC)) {
            print_r ($array);
}
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
10 sept. 2007 à 16:15
merci bcp pour la reponse,
j ai fait cette requette :

$query_=mysql_query("SELECT id_travail,date_eff,duree,id_user FROM effectue where id_aff=".$id_aff." AND id_user in (SELECT id_user FROM user WHERE id_fonction=".$id_fonction.")")or die(mysql_error());

dis moi, quelle est la plus optimale ?

Merci
N'importe où. 
mais là où il le faut.
0
Rejoignez-nous