}
 // Associations à retirer
 if (count($tab_base_affectation)) {
     foreach ($tab_base_affectation as $key => $bool) {
         list($user_id, $groupe_id) = explode('_', $key);
         $lignes_principal_del .= '<tr><th>Supprimer <input id="pp_' . $user_id . '_' . $groupe_id . '_0" name="pp_' . $user_id . '_' . $groupe_id . '_0" type="checkbox" checked /></th><td>' . html($tab_base_prof_identite[$user_id]) . '</td><td>' . html($tab_base_classe[$groupe_id]) . '</td></tr>' . NL;
     }
 }
 // ////////////////////////////////////////////////////////////////////////////////////////////////////
 // associations profs/matières
 // ////////////////////////////////////////////////////////////////////////////////////////////////////
 // On récupère le contenu de la base pour comparer : $tab_base_affectation[user_id_matiere_id]=TRUE + $tab_base_matiere[matiere_id]=matiere_nom + $tab_matiere_ref_TO_id_base[matiere_ref]=id_base
 // En deux requêtes sinon on ne récupère pas les matieres sans utilisateurs affectés.
 $tab_base_matiere = array();
 $tab_matiere_ref_TO_id_base = array();
 $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_matieres_etablissement(TRUE);
 foreach ($DB_TAB as $DB_ROW) {
     $tab_base_matiere[$DB_ROW['matiere_id']] = $DB_ROW['matiere_nom'];
     $tab_matiere_ref_TO_id_base[$DB_ROW['matiere_ref']] = $DB_ROW['matiere_id'];
 }
 $tab_base_affectation = array();
 $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_jointure_professeurs_matieres();
 foreach ($DB_TAB as $DB_ROW) {
     $tab_base_affectation[$DB_ROW['user_id'] . '_' . $DB_ROW['matiere_id']] = TRUE;
 }
 // Parcourir chaque entrée du fichier à la recherche d'affectations profs/matières
 foreach ($tab_users_fichier['matiere'] as $i_fichier => $tab_matieres) {
     if (count($tab_matieres)) {
         foreach ($tab_matieres as $matiere_code => $type_rattachement) {
             // On a trouvé une telle affectation ; comparer avec ce que contient la base
             if (isset($tab_i_fichier_TO_id_base[$i_fichier]) && isset($tab_matiere_ref_TO_id_base[$matiere_code])) {
	<li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__calcul_scores_etats_acquisitions">DOC : Calcul des scores et des états d'acquisitions.</a></span></li>
	<li><span class="astuce">Profils autorisés par les administrateurs : <span class="u"><?php echo $texte ?></span>.</span></li>
</ul>

<form action="#" method="post">
<hr />

<?php
// Séparé en plusieurs requêtes sinon on ne s'en sort pas (entre les matières sans coordonnateurs, sans référentiel, les deux à la fois...).
// La recherche ne s'effectue que sur les matières et niveaux utilisés, sans débusquer des référentiels résiduels.
$tab_matiere = array();
$tab_niveau  = array();
$tab_colonne = array();

// On récupère la liste des matières utilisées par l'établissement
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_matieres_etablissement( TRUE /*order_by_name*/ );
$nb_matieres = !empty($DB_TAB) ? count($DB_TAB) : 0 ;
if(!$nb_matieres)
{
	echo'<p><span class="danger">Aucune matière associée à l\'établissement !</span></p>';
}
else
{
	foreach($DB_TAB as $DB_ROW)
	{
		$tab_matiere[$DB_ROW['matiere_id']] = array(
			'nom'         => html($DB_ROW['matiere_nom']) ,
			'nb_demandes' => $DB_ROW['matiere_nb_demandes']
		);
	}
	// On récupère la liste des niveaux utilisés par l'établissement