Choix du fichier

L'ordre des colonnes dans votre fichier doit être :
Code-barres ; Nom ; Prénom ; Rue ; Complément de rue ; Code postal ; Commune ; Téléphone ; Année de date de naissance ; Classe ; Sexe ; Téléphone 2 ; Mail ; Profession ; Message
Les trois dernières colonnes mail, profession, message sont facultatives.


(ajoute ou modifie les lecteurs présents dans le fichier)
(modifie les lecteurs présents, supprime les lecteurs absents du fichier)
"; // Si les lecteurs sont localisés, affiche le sélecteur de localisation, sinon valeur par défaut de l'utilisateur if ($pmb_lecteurs_localises=="1") { print "Localisation des lecteurs
"; } else { print ""; } // Sélecteur de categ lecteur print "Catégorie des lecteurs
"; // Sélecteur de code stat print "Code statistique des lecteurs
"; } 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($separateur, $dbh, $type_import){ global $categorie, $codestat, $localisation; global $pmb_lecteurs_localises; //La structure du fichier texte doit être la suivante : //Code-barres ; Nom ; Prénom ; Rue ; Complément de rue ; Code postal ; Commune ; Téléphone ; Année de date de naissance ; Classe ; Sexe ; Téléphone 2 ; Mail ; Profession ; Message $requete = "SELECT duree_adhesion FROM empr_categ WHERE id_categ_empr='".$categorie."'"; $resultat = mysql_query($requete,$dbh); if(mysql_num_rows($resultat)) $duree = mysql_result($resultat,0,0); else $duree=365; $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*$duree); //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) { while (!feof($fichier)) { //initialise la variable tableau, au cas où on ait pas toutes les colonnes dans le fichier csv $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; } if ($tab[8]!="0") $password=$tab[8]; else $password=""; //pour éviter un saut de ligne dans les trois dernières colonnes qui sont facultatives $tab[12]=str_replace("\\r\\n","", $tab[12]); $tab[13]=str_replace("\\r\\n","", $tab[13]); $tab[14]=str_replace("\\r\\n","", $tab[14]); // Traitement du lecteur $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, rejet si pas d'id avec message si au moins nom ou au moins prénom contient qqch //si pas d'id, pas de nom, pas de prénom, erreur muette : dernière ligne if ((!$tab[0] || $tab[0] == "") && !($tab[1]=="" && $tab[2]=="" && $tab[3]==""&& $tab[4]=="")) { print(" Lecteur 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 lecteur 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, empr_tel2, empr_mail, empr_prof, empr_msg, empr_location) "; $req_insert .= "VALUES ('$tab[0]','$tab[1]','$tab[2]','$tab[3]', '$tab[4]', '$tab[5]', "; $req_insert .= "'$tab[6]', '$tab[7]', '$tab[8]', $categorie, $codestat, '$date_auj', '$sexe', "; $req_insert .= "'$login', '$password', '$date_auj', '$date_an_proch','$tab[11]','$tab[12]','$tab[13]','$tab[14]','$localisation')"; $insert = mysql_query($req_insert,$dbh); if (!$insert) { print("Echec de la création du lecteur 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 lecteur 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]', "; $req_update .= "empr_tel1 = '$tab[7]', empr_year = '$tab[8]', empr_categ = '".$categorie."', empr_codestat = '$codestat', empr_modif = '$date_auj', empr_sexe = '$sexe', "; // on ne modifie ni login ni mot de passe pour éviter d'écraser un mot de passe changé par le lecteur // $req_update .= "empr_login = $login, empr_password= $tab[8], "; $req_update .= "empr_date_adhesion = '$date_auj', empr_date_expiration = '$date_an_proch', empr_tel2 = '$tab[11]', empr_location='$localisation' "; $req_update .= "WHERE empr_cb = '$tab[0]'"; $update = mysql_query($req_update, $dbh); if (!$update) { print("Echec de la modification du lecteur suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); } else { if ($tab[12]!="") { $req_update_mail = "UPDATE empr SET empr_mail='$tab[12]' WHERE empr_cb = '$tab[0]'"; $update_mail = mysql_query($req_update_mail, $dbh); if (!$update_mail) { print("Echec de la modification du mail du lecteur suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) print($eleve_abrege[$i]." : ".$tab[$i].", "); print("
"); } $tab[12]=""; } if ($tab[13]!="") { $req_update_prof = "UPDATE empr SET empr_prof='$tab[13]' WHERE empr_cb = '$tab[0]'"; $update_prof = mysql_query($req_update_prof, $dbh); if (!$update_prof) { print("Echec de la modification de la profession lecteur suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) print($eleve_abrege[$i]." : ".$tab[$i].", "); print("
"); } $tab[13]=""; } if ($tab[14]!="") { $req_update_msg = "UPDATE empr SET empr_msg='$tab[14]' WHERE empr_cb = '$tab[0]'"; $update_msg = mysql_query($req_update_msg, $dbh); if (!$update_msg) { print("Echec de la modification du message sur le lecteur suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) print($eleve_abrege[$i]." : ".$tab[$i].", "); print("
"); } $tab[14]=""; } $cpt_maj ++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print("Echec pour le lecteur suivant (Erreur : ".mysql_error().") :
"); for ($i=0;$i<3;$i++) { print($eleve_abrege[$i]." : ".$tab[$i].", "); } print("
"); break; } } if ($type_import == 'maj_complete') { $requete_empr_groupe_delete = "DELETE FROM empr_groupe LEFT JOIN empr ON empr_id=id_empr LEFT JOIN pret ON pret_idempr=id_empr WHERE pret_idempr IS NULL and empr_modif != '$date_auj' and empr_categ=$categorie and empr_codestat= $codestat"; if ($pmb_lecteurs_localises=="1") { $requete_empr_where .= " and empr_location=$localisation"; } mysql_query($requete_empr_groupe_delete.$requete_empr_where,$dbh); $requete_list_empr_delete = "SELECT id_empr FROM empr LEFT JOIN pret ON pret_idempr=id_empr WHERE pret_idempr IS NULL and empr_modif != '$date_auj' and empr_categ=$categorie and empr_codestat= $codestat $requete_empr_where "; $list_empr_delete=mysql_query($requete_list_empr_delete,$dbh); while (($empr_delete = mysql_fetch_array($list_empr_delete))) { emprunteur::del_empr($empr_delete["id_empr"]); } } //Affichage des insert et update print("
"); if ($cpt_delete) print($cpt_delete." lecteurs supprimés.
"); if ($cpt_insert) print($cpt_insert." lecteurs créés.
"); if ($cpt_maj) print($cpt_maj." lecteurs 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')"); } switch($action) { case 1: if ($import_launch){ import($Sep_Champs, $dbh, $type_import); } else { show_import_choix_fichier($dbh); } break; case 2: break; default: show_import_choix_fichier($dbh); break; } ?>