Choix du fichier


(ajoute ou modifie les lecteurs présents dans le fichier)
(supprime les lecteurs non présents dans le fichier et qui n'ont pas de prêt en cours)
"; } function import_eleves($separateur, $dbh, $type_import){ //La structure du fichier texte doit être la suivante : //Numéro identifiant/Nom/Prénom/Rue/Complément de rue/Code postal/Commune/Téléphone/Date de naissance/Classe/Sexe $eleve_abrege = array("Numéro identifiant","Nom","Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time()+3600*24*30.42*12); //Upload du fichier if (!($_FILES['import_lec']['tmp_name'])) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!(move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/".basename($_FILES['import_lec']['tmp_name'])))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :
"; print_r($_FILES)."

"; } $fichier = @fopen( "./temp/".basename($_FILES['import_lec']['tmp_name']), "r" ); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe pmb_mysql_query("DELETE FROM empr_groupe",$dbh); //Supprime les élèves qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_cb NOT LIKE 'E%'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret,$dbh); while (($verif_pret = pmb_mysql_fetch_array($select_verif_pret))) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = import_empr::get_encoded_buffer($buffer); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10]{0}) { case 'M': $sexe = 1; break; case 'F': $sexe = 2; break; default: $sexe = 0; break; } // Traitement de l'élève $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '".$tab[0]."'",$dbh); $nb_enreg = pmb_mysql_num_rows($select); //Test si un numéro id est fourni if (!$tab[0] || $tab[0] == "") { print(" Elève non pris en compte car \"Numéro identifiant\" non renseigné :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); $nb_enreg = 2; } $login = import_empr::cre_login($tab[1],$tab[2]); switch ($nb_enreg) { case 0: //Ce élève n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('$tab[0]','$tab[1]','$tab[2]','$tab[3]', '$tab[4]', '$tab[5]', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_insert .= "'$tab[6]', '$tab[7]', '$tab[8]', 1, 2, '$date_auj', '$sexe', "; $req_insert .= "'$login', '$tab[8]', '$date_auj', '$date_an_proch')"; $insert = pmb_mysql_query($req_insert,$dbh); if (!$insert) { print("Echec de la création de l'élève suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { emprunteur::update_digest($login,$tab[8]); emprunteur::hash_password($login,$tab[8]); $cpt_insert ++; } import_empr::gestion_groupe($tab[9], $tab[0]); $j++; break; case 1: //Ce élève est déjà enregistré $req_update = "UPDATE empr SET empr_nom = '$tab[1]', empr_prenom = '$tab[2]', empr_adr1 = '$tab[3]', "; $req_update .= "empr_adr2 = '$tab[4]', empr_cp = '$tab[5]', empr_ville = '$tab[6]', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_update .= "empr_tel1 = '$tab[7]', empr_year = '$tab[8]', empr_categ = '1', empr_codestat = '2', empr_modif = '$date_auj', empr_sexe = '$sexe', "; $req_update .= "empr_login = '$login', empr_password= '$tab[8]', "; $req_update .= "empr_date_adhesion = '$date_auj', empr_date_expiration = '$date_an_proch' "; $req_update .= "WHERE empr_cb = '$tab[0]'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print("Echec de la modification de l'élève suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { emprunteur::update_digest($login,$tab[8]); emprunteur::hash_password($login,$tab[8]); $cpt_maj ++; } import_empr::gestion_groupe($tab[9], $tab[0]); $j++; break; case 2: break; default: print("Echec pour l'élève suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); break; } } //Affichage des insert et update print("
_____________________
"); if ($cpt_insert) print($cpt_insert." Elèves créés.
"); if ($cpt_maj) print($cpt_maj." Elèves modifiés.
"); fclose($fichier); } } function import_profs($separateur, $dbh, $type_import){ //La structure du fichier texte doit être la suivante : //Numéro identifiant/Nom/Prénom/Rue/Complément de rue/Code postal/Commune/Téléphone/Date de naissance/Classe/Sexe $prof_abrege = array("Numéro identifiant","Nom","Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time()+3600*24*30.42*12); //Upload du fichier if (!($_FILES['import_lec']['tmp_name'])) print "Cliquez sur Précédent et choisissez un fichier"; elseif (!(move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/".basename($_FILES['import_lec']['tmp_name'])))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :
"; print_r($_FILES)."

"; } $fichier = @fopen( "./temp/".basename($_FILES['import_lec']['tmp_name']), "r" ); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe pmb_mysql_query("DELETE FROM empr_groupe",$dbh); //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_cb NOT LIKE 'E%'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret,$dbh); while (($verif_pret = pmb_mysql_fetch_array($select_verif_pret))) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = import_empr::get_encoded_buffer($buffer); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10]{0}) { case 'M': $sexe = 1; break; case 'F': $sexe = 2; break; default: $sexe = 0; break; } // Traitement du prof $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '".$tab[0]."'",$dbh); $nb_enreg = pmb_mysql_num_rows($select); //Test si un numéro id est fourni if (!$tab[0] || $tab[0] == "") { print(" Prof non pris en compte car \"Numéro identifiant\" non renseigné :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); $nb_enreg = 2; } $login = import_empr::cre_login($tab[1],$tab[2]); switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistre $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('$tab[0]','$tab[1]','$tab[2]','$tab[3]', '$tab[4]', '$tab[5]', "; //Verifier dans la table empr_categ si id_categ_empr 2 = profs Verifier dans la table empr_codestat si idcode 2 = ecole Sinon, changer les valeurs $req_insert .= "'$tab[6]', '$tab[7]', '$tab[8]', 2, 2, '$date_auj', '$sexe', "; $req_insert .= "'$login', '$tab[8]', '$date_auj', '$date_an_proch')"; $insert = pmb_mysql_query($req_insert,$dbh); if (!$insert) { print("Echec de la création du prof suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { emprunteur::update_digest($login,$tab[8]); emprunteur::hash_password($login,$tab[8]); $cpt_insert ++; } import_empr::gestion_groupe($tab[9], $tab[0]); $j++; break; case 1: //Ce prof est déja enregistré $req_update = "UPDATE empr SET empr_nom = '$tab[1]', empr_prenom = '$tab[2]', empr_adr1 = '$tab[3]', "; $req_update .= "empr_adr2 = '$tab[4]', empr_cp = '$tab[5]', empr_ville = '$tab[6]', "; //Vérifier dans la table empr_categ si id_categ_empr 2 = profs Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_update .= "empr_tel1 = '$tab[7]', empr_year = '$tab[8]', empr_categ = '2', empr_codestat = '2', empr_modif = '$date_auj', empr_sexe = '$sexe', "; $req_update .= "empr_login = '$login', empr_password= '$tab[8]', "; $req_update .= "empr_date_adhesion = '$date_auj', empr_date_expiration = '$date_an_proch' "; $req_update .= "WHERE empr_cb = '$tab[0]'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print("Echec de la modification du prof suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { emprunteur::update_digest($login,$tab[8]); emprunteur::hash_password($login,$tab[8]); $cpt_maj ++; } import_empr::gestion_groupe($tab[9], $tab[0]); $j++; break; case 2: break; default: print("Echec pour le prof suivant (Erreur : ".pmb_mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); break; } } //Affichage des insert et update print("
_____________________
"); if ($cpt_insert) print($cpt_insert." Prof créés.
"); if ($cpt_maj) print($cpt_maj." Profs modifiés.
"); fclose($fichier); } } switch($action) { case 1: if ($imp_elv){ import_eleves($Sep_Champs, $dbh, $type_import); } elseif ($imp_prof) { import_profs($Sep_Champs, $dbh, $type_import); } else { show_import_choix_fichier($dbh); } break; case 2: break; default: show_import_choix_fichier($dbh); break; } ?>