Regrouper donnee meme cle tableau php

toto_ns -  
 toto_ns -
Bonjour, je dois récupéré dans une base de donnée des donnée appartenant a des responsables et je voudrais les regrouper chaque donnée avec le responsable correspondant à savoir des que le responsable est "toto" alors le mettre dans id toto si cela appartient a titi alors le mettre dans titi,etc...quelqu'un aurait une idée? car j'avais fais un bout de code mais cela ecrase toujours le client précèdent,voici un exemple :

responsable: toto => "client A"; "client B";"client C";"client D".

responsable: TITI=> "client A"; "client B";"client C";"client D".

4 réponses

  1. reaverlost Messages postés 168 Statut Membre 21
     
    Salut,

    Montre ce que t'as fais.
    0
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Je te suggère un truc de ce genre :
    $responsables = array();
    while ($donnees = {resultat_requete})
    {
        $resp = $donnees['responsable'];
        if (!isset($responsables[$resp]))
            $responsables[$resp] = array();
        $responsables[$resp][] = $donnees['client'];
    }
    

    En remplaçant {resultat_requete} par ce qui va bien dans ton code, pour parcourir le résultat de la requête (par exemple, mysql_fetch_array(), 'responsable' et 'client' par les bons noms de champ de ta requête.

    Xavier
    0
  3. toto_ns
     
    je vous remercie pour ces réponse je vous joins le code que j'avais essayé de faire mes sans succès sa écrase toujours la valeur précèdente dans le tableau


    //la requete sql qui recupere le nom du client et le responsable du client et id du responsable
    $recherche_dossier="SELECT C.nom_cli,C.prenom_cli, U.prenom as prenom_responsable,U.iduser
    FROM client C
    Join gestion_user U on C.responsable =U.iduser;

    //recupere les donnée
    $query_dossier = mysql_query($recherche_dossier);

    if (mysql_num_rows($query_dossier)> 0){ // si le dossier est retrouvé dans la base
    $r1 = mysql_fetch_array($query_dossier);
    $responsable=$r1[nom_responsable];
    $iduser=$r1[iduser];
    $nom_cli=$r1[nom_cli];
    $preno=$r1[prenom_cli];
    //tableau qui regroupe chaque donnée par responsable
    $t_reussi[$iduser][nom_cli]=$nom_cli;
    $t_reussi[$iduser][prenom_cli]=$prenom;
    $t_reussi[$iduser][responsable]=$responsable;

    //affichage par responsable
    foreach($t_reussi as $iduser=>$tabvalue){
    print " <tr>\n";
    print "<td>".$tabvalue[$iduser][nom_cli]."</td>";
    print "<td>".$tabvalue[$iduser][prenom_cli]."</td>";
    print "<td>".$tabvalue[$iduser][responsable]."</td>";
    print " </tr>\n";
    }

    Et la au niveau de l'affichage je récupére que le dernier résultat de la requête pour un responsable.
    0
  4. toto_ns
     
    j'ai essayé ta réponse celane fonctionne pas je te donne un exemple avec deux responsables :

    nom date-naissance responsable
    Eric 1970-08-15 tutu
    Eric 1970-08-15 tutu
    Patrick 1973-11-28 tata
    Laura 1970-08-15 tutu
    Pierre 1973-11-28 tata

    et le retour je ne reçois que le dernier résultat ajouté au tableau pour le responsable.
    0