Regrouper les résultats d'une requete selon un attribut avec PDO
Bonjour a tous,
Voila mon petit probleme. Je souhaiterais regrouper les résultats d'une mes requetes en fonction d'un attribut commun.
Par exemple, j'ai une table protéine ou je sélectionne "id_Prot" et "organisme".
Je souhaiterais regrouper tous les id_Prot qui ont le meme organisme.
Voici ma requete qui marche (testé sur phpMyAdmin):
Code:
1 2
| $req_Dom_Gen1= $db->prepare(("SELECT DISTINCT PROTEINE.organisme, PROTEINE.id_Prot, OCC_NVDC_PAR_DC.id_Prot FROM PROTEINE, OCC_NVDC_PAR_DC WHERE OCC_NVDC_PAR_DC.id_Dom = '$domaine' AND OCC_NVDC_PAR_DC.FDR <= '20' AND PROTEINE.id_Prot=OCC_NVDC_PAR_DC.id_Prot ORDER BY PROTEINE.organisme ASC"));
$req_Dom_Gen1->execute(); |
Ensuite j'ai fait ceci en PHP:
Code:
var_dump ($req_Dom_Gen1->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
ce qui donne ceci:
Code:
1 2 3 4 5 6 7 8
| array(4) {
["AMP-dependent protein kinase type I-beta regulatory subunit, putative "]=> array(1) { [0]=> string(12) "TVAG_103080 " }
["Leishmania_braziliensis "]=> array(1) { [0]=> string(15) "LbrM09_V2.1600 " }
["Toxoplasma_gondii_GT1 "]=> array(1) { [0]=> string(13) "TGGT1_087640 " }
["Trypanosoma_brucei_gambiense "]=> array(4) { [0]=> string(13) "Tbg972.1.760 "
[1]=> string(14) "Tbg972.9.1480 "
[2]=> string(14) "Tbg972.6.3320 "
[3]=> string(14) "Tbg972.3.5620 " } } |
J'ai donc bien regroupé les id_Prot en fonction de leur organisme mais le probleme que j'ai maintenant, c'est comment récuperer l'organisme et l'id_Prot et les afficher proprement comme ceci par exemple:
Code:
1 2 3 4 5 6 7 8
| AMP-dependent protein kinase type I-beta regulatory subunit, putative :
TVAG_103080
Trypanosoma_brucei_gambiense:
Tbg972.1.760
Tbg972.9.1480
Tbg972.6.3320
Tbg972.3.5620 |
J'ai essayé ceci:
Code:
1 2 3 4 5 6 7
| while ($result=$req_Dom_Gen1->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
{
echo $result['organisme'];
echo $result['id_Prot'];
} |
mais cela m'affiche l'organisme a chaque fois pour l'id_Prot, quand bien meme ces id_Prot ont le meme organisme.
Si vous pouviez m'aider, je vous en serai reconnaissante car cela fait 2 jours que je bloque dessus et j'ai vraiment tout essayé....
Merci a vous.