for ($cpt = 0; $cpt < $matieres['count']; $cpt++) { $code_matiere = $matieres[$cpt]['cn'][0]; $nom_matiere = $matieres[$cpt]['description'][0]; // On test si on a déjà cette matière $nouvelle_matiere = MatierePeer::retrieveByPK($code_matiere); if ($nouvelle_matiere != null) { echo "La matière " . $nouvelle_matiere->getMatiere() . " (" . $nouvelle_matiere->getNomComplet() . ") existe déjà<br/>"; } else { $nouvelle_matiere = new Matiere(); $nouvelle_matiere->setMatiere($code_matiere); $nouvelle_matiere->setNomComplet($nom_matiere); $nouvelle_matiere->save(); } // Maintenant on associe les profs à cette matiere $nb_profs = $matieres[$cpt]['memberuid']['count']; $matiere_profs = $nouvelle_matiere->getProfesseurs(); if ($nb_profs > 0) { for ($i = 0; $i < $nb_profs; $i++) { // On vérifie que le prof existe, quand même... $prof = UtilisateurProfessionnelPeer::retrieveByPK($matieres[$cpt]['memberuid'][$i]); // Le prof existe, on créer l'association, si elle n'existe pas encore if ($prof != null) { // L'association n'existe pas, on la créé // Pour ça, on doit déterminer l'ordre if (!$matiere_profs->contains($prof)) { $assoc = JProfesseursMatieresQuery::create()->filterByProfesseur($prof)->orderByOrdreMatieres('desc')->findOne(); $nouvel_ordre = $assoc == null ? 1 : $assoc->getOrdreMatieres() + 1; $new_assoc = new JProfesseursMatieres(); $new_assoc->setProfesseur($prof); $new_assoc->setMatiere($nouvelle_matiere); $new_assoc->setOrdreMatieres($nouvel_ordre);