}
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// associations profs/groupes ou élèves/groupes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Garder trace des identités des utilisateurs de la base
$tab_base_user_identite = array();
// On récupère le contenu de la base pour comparer : $tab_base_affectation[user_id_groupe_id]=TRUE et $tab_base_groupe[groupe_id]=groupe_nom
// En deux requêtes sinon on ne récupère pas les groupes sans utilisateurs affectés.
$tab_base_groupe = array();
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes();
foreach ($DB_TAB as $DB_ROW) {
    $tab_base_groupe[$DB_ROW['groupe_id']] = $DB_ROW['groupe_nom'];
}
$tab_base_affectation = array();
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_avec_groupe($import_profil, TRUE);
foreach ($DB_TAB as $DB_ROW) {
    $tab_base_affectation[$DB_ROW['user_id'] . '_' . $DB_ROW['groupe_id']] = TRUE;
    $tab_base_user_identite[$DB_ROW['user_id']] = $DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom'];
}
// Parcourir chaque entrée du fichier à la recherche d'affectations utilisateurs/groupes
foreach ($tab_users_fichier['groupe'] as $i_fichier => $tab_groupes) {
    if (count($tab_groupes)) {
        foreach ($tab_groupes as $i_groupe => $groupe_ref) {
            // 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_i_groupe_TO_id_base[$i_groupe])) {
                $user_id = $tab_i_fichier_TO_id_base[$i_fichier];
                $groupe_id = $tab_i_groupe_TO_id_base[$i_groupe];
                if (isset($tab_base_affectation[$user_id . '_' . $groupe_id])) {
                    if ($mode == 'complet') {
                        $lignes_groupes_ras .= '<tr><th>Conserver</th><td>' . html($tab_users_fichier['nom'][$i_fichier] . ' ' . $tab_users_fichier['prenom'][$i_fichier]) . '</td><td>' . html($tab_base_groupe[$groupe_id]) . '</td></tr>' . NL;
        foreach ($tab_groupe as $groupe_id) {
            DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_user_groupe_par_admin($user_id, 'eleve', $groupe_id, 'groupe', FALSE);
        }
    }
}
// Affichage du bilan des affectations des élèves dans les groupes ; en deux requêtes pour récupérer les élèves sans groupes et les groupes sans élèves
$tab_niveau_groupe = array();
$tab_user = array();
// Récupérer la liste des groupes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes_avec_niveaux();
foreach ($DB_TAB as $DB_ROW) {
    $tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
    $tab_user[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des élèves / groupes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_avec_groupe('eleve', TRUE);
foreach ($DB_TAB as $DB_ROW) {
    $tab_user[$DB_ROW['groupe_id']] .= html($DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom']) . '<br />';
}
// Assemblage du tableau résultant
$TH = array();
$TB = array();
$TF = array();
foreach ($tab_niveau_groupe as $niveau_id => $tab_groupe) {
    $TH[$niveau_id] = '';
    $TB[$niveau_id] = '';
    $TF[$niveau_id] = '';
    foreach ($tab_groupe as $groupe_id => $groupe_nom) {
        $nb = mb_substr_count($tab_user[$groupe_id], '<br />', 'UTF-8');
        $s = $nb > 1 ? 's' : '';
        $TH[$niveau_id] .= '<th>' . $groupe_nom . '</th>';
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// associations profs/groupes ou élèves/groupes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Garder trace des identités des utilisateurs de la base
$tab_base_user_identite = array();
// On récupère le contenu de la base pour comparer : $tab_base_affectation[user_id_groupe_id]=TRUE et $tab_base_groupe[groupe_id]=groupe_nom
// En deux requêtes sinon on ne récupère pas les groupes sans utilisateurs affectés.
$tab_base_groupe = array();
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes();
foreach($DB_TAB as $DB_ROW)
{
  $tab_base_groupe[$DB_ROW['groupe_id']] = $DB_ROW['groupe_nom'];
}
$tab_base_affectation = array();
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_avec_groupe( $import_profil , TRUE /*only_actuels*/ );
foreach($DB_TAB as $DB_ROW)
{
  $tab_base_affectation[$DB_ROW['user_id'].'_'.$DB_ROW['groupe_id']] = TRUE;
  $tab_base_user_identite[$DB_ROW['user_id']] = $DB_ROW['user_nom'].' '.$DB_ROW['user_prenom'];
}
// Parcourir chaque entrée du fichier à la recherche d'affectations utilisateurs/groupes
foreach( $tab_users_fichier['groupe'] as $i_fichier => $tab_groupes )
{
  if(count($tab_groupes))
  {
    foreach( $tab_groupes as $i_groupe => $groupe_ref )
    {
      // 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_i_groupe_TO_id_base[$i_groupe])) )
      {
    }
  }
}

// Affichage du bilan des affectations des élèves dans les groupes ; en deux requêtes pour récupérer les élèves sans groupes et les groupes sans élèves
$tab_niveau_groupe = array();
$tab_user          = array();
// Récupérer la liste des groupes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes_avec_niveaux();
foreach($DB_TAB as $DB_ROW)
{
  $tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
  $tab_user[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des élèves / groupes
$DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_avec_groupe( 'eleve' /*profil_type*/ , TRUE /*only_actuels*/ );
foreach($DB_TAB as $DB_ROW)
{
  $tab_user[$DB_ROW['groupe_id']]  .= html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'<br />';
}
// Assemblage du tableau résultant
$TH = array();
$TB = array();
$TF = array();
foreach($tab_niveau_groupe as $niveau_id => $tab_groupe)
{
  $TH[$niveau_id] = '';
  $TB[$niveau_id] = '';
  $TF[$niveau_id] = '';
  foreach($tab_groupe as $groupe_id => $groupe_nom)
  {