Regrouper les resultats de 2 requetes selon un meme attribut
Posté : 09 mai 2010, 23:59
Bonjour,
Je me posais la question: si je veux regrouper les résultats de deux requetes différentes selon un meme attribut commun, est ce que c'est possible?
Par exemple (j'utilise PDO):
1ere requete:
Avez vous une idée s'il vous plait?
Merci a vous.
Je me posais la question: si je veux regrouper les résultats de deux requetes différentes selon un meme attribut commun, est ce que c'est possible?
Par exemple (j'utilise PDO):
1ere requete:
$req_Dom_Gen= $db->query(("SELECT DISTINCT PROTEINE.organisme, PROTEINE.id_Prot, OCC_DC.id_Prot FROM PROTEINE, OCC_DC WHERE OCC_DC.id_Dom = '$domaine' AND PROTEINE.id_Prot=OCC_DC.id_Prot ORDER BY PROTEINE.organisme ASC"));
2eme requete:
$req_Dom_Gen1= $db->query(("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 <='$FDR' AND PROTEINE.id_Prot=OCC_NVDC_PAR_DC.id_Prot ORDER BY PROTEINE.organisme ASC"));
Et voici ce que j'ai essayé de faire pour regrouper les résultats selon l'attribut "organisme":
$res = $req_Dom_Gen->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
$res1 = $req_Dom_Gen1->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
foreach ($res as $k => $a) {
printf ('<h1>%s</h1>','<center>'.$k.'</center>');
echo '<ul>';
echo '<h2><center>Occurrences Connues:</h2></center>';
foreach ($a as $v) {
$id=substr($v,0,-1);
printf ('<li>%s</li>',"<center><"."<a href=\"http://www.lirmm.fr/~terrapon/coddDB/".$id.".html\">".$id."</a>"."></center>");
}
echo '</ul>';
echo '<h2><center>Nouvelles Occurrences:</h2></center>';
foreach ($res1 as $k1 => $a1) {
foreach ($a1 as $v1) {
if($k1==$k)
{printf('<li>%s</li>', "<center><"."<a href=\"http://www.lirmm.fr/~terrapon/coddDB/".$v1.".html\" >".$v1."</a>"."></center>");}
}
echo '</ul>';
}
}
Mais cela n'affiche pas les résultats de la 2eme requete, seulement ceux de la 1ere (quand bien meme les 2 requetes marchent individuellement) et je ne vois pas vraiment ou est l'erreur Avez vous une idée s'il vous plait?
Merci a vous.