résultat tableau croisé ; hors sujet ?

Bonjour
j'ai le graphique merise ici :
http://www.philippeavi.net/essai/competences.png
Dans la table com_port j'ai aussi un champ "COEFF"

Résumé :
-* il y a une liste de compétences comp_comp
-* il y a une liste de devoirs comp_dev_act
-*une compétence a un coeff affecté pour chaque devoir (id_doc) qui lui
est affecté. Une compétence peut avoir plusieurs devoirs ou ancun affecté.

Je voudrais réaliser un tableau croisé qui liste les compétences en
ligne et qui affecte les coeff aux croisement des devoirs (en colonne).

exemple :
http://www.philippeavi.net/essai/tableaucroise.gif

J'utilise SPIP pour les requêtes de jointures.

Code :

//constrution des tableaux
$tabl1=array(); //compétences
$tabl2=array(); //activités
  
<BOUCLE_devo(comp_dev_act){par id_doc}>
$tabl2[#COMPTEUR_BOUCLE]="#ID_DOC";$nbract=#TOTAL_BOUCLE;
</BOUCLE_devo>

  <BOUCLE_competences(comp_comp){par id_competence}>
  $tabl1[#COMPTEUR_BOUCLE]=array("#ID_COMPETENCE #DESIGN_COMP",
  "#REPERE","#S_SF","#NIVEAU","#CI"

  <BOUCLE_devoirs3(comp_port comp_dev_act){id_competence}>

  <BOUCLE_devo3(comp_dev_act){id_doc}>
  [,(#ID_DOC),]
  [(#ID_DOC|=={2}|?{'","',' sers'})]
         </BOUCLE_devo3>

  [,(#COEFF )]

  //autre solution abandonnée
  //for($i=1; $i != 4 ; $i++)
  //{
  //if $tabl2[$i] != "#ID_DOC" {$rien} else {"#COEFF","#ID_DOC"}
  //echo $i;
       //}
  //$tabl2[2]

         </BOUCLE_devoirs3>
  );
  </BOUCLE_competences>

Je compte le nbr de devoirs premier tableau et je liste dans le tableau
tabl1 les compétences. Je souhaiterai que dans le tableau tabl1 les
colonnes soient dans l'ordre des activités avec le coeff affecté.
Je n'ai pas trouvé l'astuce.

Merci d'une piste de solution.