Regrouper donnee meme cle tableau php

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. Salut,

    Montre ce que t'as fais.
    0
    1. 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
      1. 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
        1. 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