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