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 cre_login($nom, $prenom, $dbh) { $empr_login = substr($prenom,0,1).$nom ; $empr_login = strtolower($empr_login); $empr_login = clean_string($empr_login) ; $empr_login = convert_diacrit(strtolower($empr_login)) ; $empr_login = preg_replace('/[^a-z0-9\.]/', '', $empr_login); $pb = 1 ; $num_login=1 ; while ($pb==1) { $requete = "SELECT empr_login FROM empr WHERE empr_login='$empr_login' AND empr_nom <> '$nom' AND empr_prenom <> '$prenom' LIMIT 1 "; $res = mysql_query($requete, $dbh); $nbr_lignes = mysql_num_rows($res); if ($nbr_lignes) { $empr_login .= $num_login ; $num_login++; } else $pb = 0 ; } return $empr_login; } 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 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 = mysql_query($req_select_verif_pret,$dbh); while (($verif_pret = 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 = 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 = mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '".$tab[0]."'",$dbh); $nb_enreg = 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 = cre_login($tab[1],$tab[2], $dbh); 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 = mysql_query($req_insert,$dbh); if (!$insert) { print("Echec de la création de l'élève suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { $cpt_insert ++; } gestion_groupe($tab[9], $tab[0], $dbh); $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 = mysql_query($req_update, $dbh); if (!$update) { print("Echec de la modification de l'élève suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { $cpt_maj ++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print("Echec pour l'élève suivant (Erreur : ".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 gestion_groupe($lib_groupe, $empr_cb, $dbh) { $sel = mysql_query("SELECT id_groupe from groupe WHERE libelle_groupe = \"".$lib_groupe."\"",$dbh); $nb_enreg_grpe = mysql_num_rows($sel); if (!$nb_enreg_grpe) { //insertion dans la table groupe mysql_query("INSERT INTO groupe(libelle_groupe) VALUES(\"".$lib_groupe."\")"); $groupe=mysql_insert_id(); } else { $grpobj = mysql_fetch_object ($sel) ; $groupe = $grpobj->id_groupe ; } //insertion dans la table empr_groupe $sel_empr = mysql_query("SELECT id_empr FROM empr WHERE empr_cb = \"".$empr_cb."\"",$dbh); $empr = mysql_fetch_array($sel_empr); @mysql_query("INSERT INTO empr_groupe(empr_id, groupe_id) VALUES ('$empr[id_empr]','$groupe')"); } 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 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 = mysql_query($req_select_verif_pret,$dbh); while (($verif_pret = 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 = 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 = mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '".$tab[0]."'",$dbh); $nb_enreg = 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 = cre_login($tab[1],$tab[2], $dbh); 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 = mysql_query($req_insert,$dbh); if (!$insert) { print("Echec de la création du prof suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { $cpt_insert ++; } gestion_groupe($tab[9], $tab[0], $dbh); $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 = mysql_query($req_update, $dbh); if (!$update) { print("Echec de la modification du prof suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($prof_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { $cpt_maj ++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print("Echec pour le prof suivant (Erreur : ".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; } ?>