// indice contient le nom de la classe (son numero) $classe_courante = ClassePeer::doSelect($crit_classe_courante); $error = false; if ($classe_courante == null) { $error = true; echo "Erreur : impossible de recuperer la classe {$indice}<br/>"; } if (count($classe_courante) > 1) { $error = true; echo "Erreur : plusieurs classes ayant le nom '{$indice}' sont présentes.<br/>"; } // Si on trouve la classe, et qu'il y en a bien qu'une seule, on recupere son id technique if (!$error) { $crit_eleves_de_la_classe = new Criteria(); $crit_eleves_de_la_classe->add(JEleveClassePeer::ID_CLASSE, $classe_courante[0]->getId()); $eleves_de_la_classe = JEleveClassePeer::doSelect($crit_eleves_de_la_classe); if ($eleves_de_la_classe != null) { foreach ($eleves_de_la_classe as $eleve) { $sql_ajout_rel_prof_princ = "INSERT INTO j_eleves_professeurs VALUES('" . $eleve->getLogin() . "','{$uid_as_login}'," . $classe_courante[0]->getId() . ")"; mysqli_query($GLOBALS["mysqli"], $sql_ajout_rel_prof_princ); } } } } } else { echo "Le prof {$prenom} {$nom} n'est pas professeur principal<br/>"; } } // fin parcours de tous les profs /* * Résumé des profs trouvés :
* Association des eleves a leur classes (pour chaque classe qui possede des periodes) * car on ne peut pas associer d'eleve a une classe sans periode */ //Il faut reprendre les liens dans j_eleves_classes pour savoir dans quelle classe est chaque eleve // Et creer une ligne par periode de la classe // Peut-etre faire choisir à l'admin d'ajouter les les eleves pour toutes les periodes, ou juste pour la premiere // On cree un critere pour ramener tous les liens eleve_classe/periode qui sont temporaires // (c'est a dire qui ont un leur periode a 0 = pas de periode associe) echo "<br>"; $crit = new Criteria(); $crit->add(JEleveClassePeer::PERIODE, 0); // Construction d'un tableau contenant les id des classes pour lesquelles l'utilisateur // a defini un nombre de periodes (on ne va affecter les eleves QUE pour ces classes la) //$classes_avec_periodes_definies = //$crit->add(JEleveClassePeer::ID_CLASSE, ); $relations_eleves_classes = JEleveClassePeer::doSelect($crit); // Pour chaque relation eleve_classe/periode foreach ($relations_eleves_classes as $relation_ec) { // Recuperation des periodes correspondantes a la classe de l'eleve echo "recuperation des periodes pour la classe " . $relation_ec->getIdClasse() . " <br>"; $req_periodes_classe = "SELECT * FROM periodes WHERE id_classe = " . $relation_ec->getIdClasse(); $periodes_de_la_classe = mysqli_query($GLOBALS["mysqli"], $req_periodes_classe); // Si on trouve des periodes, echo mysqli_num_rows($periodes_de_la_classe) . " periodes trouvees<br>"; if (mysqli_num_rows($periodes_de_la_classe) > 0) { // On met d'abord a jour la relation temporaire eleve_classe deja presente // (en lui affectant le numero de premiere periode (normalement 1...)) // Pour cela on recupere separement la premiere periode $periodes_de_la_classe_row = mysqli_fetch_object($periodes_de_la_classe); $relation_ec_a_modifier = JEleveClassePeer::retrieveByPK($relation_ec->getLogin(), $periodes_de_la_classe_row->id_classe, 0); //echo "relation a modifier : ".$relation_ec_a_modifier->getLogin()
/** * Retrieve object using using composite pkey values. * @param string $login * @param int $id_classe * @param int $periode * @param PropelPDO $con * @return JEleveClasse */ public static function retrieveByPK($login, $id_classe, $periode, PropelPDO $con = null) { $_instancePoolKey = serialize(array((string) $login, (string) $id_classe, (string) $periode)); if (null !== ($obj = JEleveClassePeer::getInstanceFromPool($_instancePoolKey))) { return $obj; } if ($con === null) { $con = Propel::getConnection(JEleveClassePeer::DATABASE_NAME, Propel::CONNECTION_READ); } $criteria = new Criteria(JEleveClassePeer::DATABASE_NAME); $criteria->add(JEleveClassePeer::LOGIN, $login); $criteria->add(JEleveClassePeer::ID_CLASSE, $id_classe); $criteria->add(JEleveClassePeer::PERIODE, $periode); $v = JEleveClassePeer::doSelect($criteria, $con); return !empty($v) ? $v[0] : null; }