security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } // INSERT INTO `droits` VALUES ('/responsables/corrige_ele_id.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'Correction des ELE_ID d apres Sconet', ''); if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } function extr_valeur($lig){ unset($tabtmp); $tabtmp=explode(">",my_ereg_replace("<",">",$lig)); return trim($tabtmp[2]); } function ouinon($nombre){ if($nombre==1){return "O";}elseif($nombre==0){return "N";}else{return "";} } function sexeMF($nombre){ //if($nombre==2){return "F";}else{return "M";} if($nombre==2){return "F";}elseif($nombre==1){return "M";}else{return "";} } function affiche_debug($texte){ // Passer à 1 la variable pour générer l'affichage des infos de debug... $debug=0; if($debug==1){ echo "".$texte.""; flush(); } } function maj_ini_prenom($prenom){ $prenom2=""; $tab1=explode("-",$prenom); for($i=0;$i0){ $prenom2.="-"; } $tab2=explode(" ",$tab1[$i]); for($j=0;$j0){ $prenom2.=" "; } $prenom2.=ucfirst(mb_strtolower($tab2[$j])); } } return $prenom2; } // Etape... $step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL); $stop=isset($_POST['stop']) ? $_POST['stop'] : (isset($_GET['stop']) ? $_GET['stop'] :'n'); $mysql_collate=getSettingValue("mysql_collate") ? getSettingValue("mysql_collate") : ""; $chaine_mysql_collate=""; if($mysql_collate!="") {$chaine_mysql_collate="COLLATE $mysql_collate";} //**************** EN-TETE ***************** $titre_page = "Correction des ELE_ID d'apres Sconet"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); if(isset($step)){ if(($step==0)|| ($step==1) ) { echo "
Stop
\n"; echo "
\n"; echo creer_div_infobulle("div_stop","","","Ce bouton permet s'il est coché d'interrompre les passages automatiques à la page suivante","",12,0,"n","n","y","n"); echo "\n"; echo "\n"; } } echo "

"; echo "Retour Retour"; //echo "

\n"; if(!isset($step)) { echo "

\n"; //echo time()."
\n"; echo "

Fichier ElevesSansAdresses.xml

\n"; echo "

Cette page est destinée à corriger les champs ELE_ID de la table 'eleves' et de la table 'responsables2' d'après le fichier ElevesSansAdresses.xml de Sconet.
La correction n'est possible que si les ELENOET sont corrects.

\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "

Sélectionnez le fichier ElevesAvecAdresses.xml (ou ElevesSansAdresses.xml):
\n"; echo "
\n"; //============================== // AJOUT pour tenir compte de l'automatisation ou non: //echo "\n"; echo "

\n"; //============================== echo "

\n"; echo "
\n"; echo "


\n"; echo "

NOTE: Après une phase d'analyse, les corrections seront proposées.

\n"; } else{ /* if($step>0){ echo " | Correction des ELE_ID d'apres Sconet"; } */ echo "

\n"; check_token(); // On va uploader les fichiers XML dans le tempdir de l'utilisateur (administrateur, ou scolarité pour les màj Sconet) $tempdir=get_user_temp_directory(); if(!$tempdir){ echo "

Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?

\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER } $post_max_size=ini_get('post_max_size'); $upload_max_filesize=ini_get('upload_max_filesize'); $max_execution_time=ini_get('max_execution_time'); $memory_limit=ini_get('memory_limit'); //if(!isset($_POST['step'])){ switch($step){ case 0: // Affichage des informations élèves echo "

Analyse du XML élèves

\n"; $xml_file = isset($_FILES["eleves_xml_file"]) ? $_FILES["eleves_xml_file"] : NULL; if(!is_uploaded_file($xml_file['tmp_name'])) { echo "

L'upload du fichier a échoué.

\n"; echo "

Les variables du php.ini peuvent peut-être expliquer le problème:
\n"; echo "post_max_size=$post_max_size
\n"; echo "upload_max_filesize=$upload_max_filesize
\n"; echo "

\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER require("../lib/footer.inc.php"); die(); } else{ if(!file_exists($xml_file['tmp_name'])){ echo "

Le fichier aurait été uploadé... mais ne serait pas présent/conservé.

\n"; echo "

Les variables du php.ini peuvent peut-être expliquer le problème:
\n"; echo "post_max_size=$post_max_size
\n"; echo "upload_max_filesize=$upload_max_filesize
\n"; echo "et le volume de ".$xml_file['name']." serait
\n"; echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n"; echo "

\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER require("../lib/footer.inc.php"); die(); } echo "

Le fichier a été uploadé.

\n"; /* echo "\$xml_file['tmp_name']=".$xml_file['tmp_name']."
\n"; echo "\$tempdir=".$tempdir."
\n"; echo "

Les variables du php.ini peuvent peut-être expliquer le problème:
\n"; echo "post_max_size=$post_max_size
\n"; echo "upload_max_filesize=$upload_max_filesize
\n"; echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n"; echo "

\n"; */ //$source_file=stripslashes($xml_file['tmp_name']); $source_file=$xml_file['tmp_name']; $dest_file="../temp/".$tempdir."/eleves.xml"; $res_copy=copy("$source_file" , "$dest_file"); //=============================================================== // ajout prise en compte des fichiers ZIP: Marc Leygnac $unzipped_max_filesize=getSettingValue('unzipped_max_filesize')*1024*1024; // $unzipped_max_filesize = 0 pas de limite de taille pour les fichiers extraits // $unzipped_max_filesize < 0 extraction zip désactivée if($unzipped_max_filesize>=0) { $fichier_emis=$xml_file['name']; $extension_fichier_emis=mb_strtolower(strrchr($fichier_emis,".")); if (($extension_fichier_emis==".zip")||($xml_file['type']=="application/zip")) { require_once('../lib/pclzip.lib.php'); $archive = new PclZip($dest_file); if (($list_file_zip = $archive->listContent()) == 0) { echo "

Erreur : ".$archive->errorInfo(true)."

\n"; require("../lib/footer.inc.php"); die(); } if(sizeof($list_file_zip)!=1) { echo "

Erreur : L'archive contient plus d'un fichier.

\n"; require("../lib/footer.inc.php"); die(); } /* echo "

\$list_file_zip[0]['filename']=".$list_file_zip[0]['filename']."
\n"; echo "\$list_file_zip[0]['size']=".$list_file_zip[0]['size']."
\n"; echo "\$list_file_zip[0]['compressed_size']=".$list_file_zip[0]['compressed_size']."

\n"; */ //echo "

\$unzipped_max_filesize=".$unzipped_max_filesize."

\n"; if(($list_file_zip[0]['size']>$unzipped_max_filesize)&&($unzipped_max_filesize>0)) { echo "

Erreur : La taille du fichier extrait (".$list_file_zip[0]['size']." octets) dépasse la limite paramétrée ($unzipped_max_filesize octets).

\n"; require("../lib/footer.inc.php"); die(); } $res_extract=$archive->extract(PCLZIP_OPT_PATH, "../temp/".$tempdir); if ($res_extract != 0) { echo "

Le fichier uploadé a été dézippé.

\n"; $fichier_extrait=$res_extract[0]['filename']; unlink("$dest_file"); // Pour Wamp... $res_copy=rename("$fichier_extrait" , "$dest_file"); } else { echo "

Echec de l'extraction de l'archive ZIP.

\n"; require("../lib/footer.inc.php"); die(); } } } //fin ajout prise en compte des fichiers ZIP //=============================================================== if(!$res_copy){ echo "

La copie du fichier vers le dossier temporaire a échoué.
Vérifiez que l'utilisateur ou le groupe apache ou www-data a accès au dossier temp/$tempdir

\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER require("../lib/footer.inc.php"); die(); } else{ echo "

La copie du fichier vers le dossier temporaire a réussi.

\n"; $sql="DROP TABLE IF EXISTS temp_gep_import2;"; //echo "$sql
"; $suppr_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS temp_gep_import2 ( `ID_TEMPO` varchar(40) NOT NULL default '', `LOGIN` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENOM` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEPRE` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELESEXE` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEDATNAIS` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENOET` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELE_ID` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEDOUBL` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENONAT` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEREG` varchar(40) $chaine_mysql_collate NOT NULL default '', `DIVCOD` varchar(40) $chaine_mysql_collate NOT NULL default '', `ETOCOD_EP` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT1` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT2` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT3` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT4` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT5` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT6` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT7` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT8` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT9` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT10` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT11` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT12` varchar(40) $chaine_mysql_collate NOT NULL default '', `LIEU_NAISSANCE` varchar(50) $chaine_mysql_collate NOT NULL default '' ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE temp_gep_import2;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); // On va stocker dans cette deuxième table les correspondances ELE_ID/ELENOET à appliquer sur les tables 'eleves' et 'responsables2' $sql="TRUNCATE TABLE tempo2;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); $fp=fopen($dest_file,"r"); if($fp){ // On commence par la section STRUCTURES pour ne récupérer que les ELE_ID d'élèves qui sont dans une classe. echo "

\n"; echo "Analyse du fichier pour extraire les associations ELENOET/ELE_ID d'élèves affectés dans une classe...
\n"; // PARTIE $cpt=0; $eleves=array(); $temoin_structures=0; $temoin_struct_ele=-1; $temoin_struct=-1; $i=-1; //while($cpt")){ if(strstr($ligne,"")){ echo "Début de la section STRUCTURES à la ligne $cpt
\n"; $temoin_structures++; } //if(strstr($ligne[$cpt],"
")){ if(strstr($ligne,"
")){ echo "Fin de la section STRUCTURES à la ligne $cpt
\n"; $temoin_structures++; break; } if($temoin_structures==1){ //if(strstr($ligne[$cpt],"".htmlspecialchars($ligne[$cpt])."
\n"; unset($tabtmp); //$tabtmp=explode('"',strstr($ligne[$cpt]," ELEVE_ID=")); $tabtmp=explode('"',strstr($ligne," ELEVE_ID=")); //$tmp_eleve_id=trim($tabtmp[1]); $eleves[$i]['eleve_id']=trim($tabtmp[1]); $eleves[$i]["structures"]=array(); $j=0; $temoin_struct_ele=1; } //if(strstr($ligne[$cpt],"
")){ if(strstr($ligne,"")){ $temoin_struct_ele=0; } if($temoin_struct_ele==1){ //if(strstr($ligne[$cpt],"")){ if(strstr($ligne,"")){ $eleves[$i]["structures"][$j]=array(); $temoin_struct=1; } //if(strstr($ligne[$cpt],"")){ if(strstr($ligne,"")){ $j++; $temoin_struct=0; } $tab_champs_struct=array("CODE_STRUCTURE","TYPE_STRUCTURE"); if($temoin_struct==1){ for($loop=0;$loop")){ if(strstr($ligne,"<".$tab_champs_struct[$loop].">")){ $tmpmin=mb_strtolower($tab_champs_struct[$loop]); //$eleves[$i]["structures"][$j]["$tmpmin"]=extr_valeur($ligne[$cpt]); //$eleves[$i]["structures"][$j]["$tmpmin"]=extr_valeur($ligne); // Suppression des guillemets éventuels $eleves[$i]["structures"][$j]["$tmpmin"]=my_ereg_replace('"','',extr_valeur($ligne)); //echo "\$eleves[$i]["structures"][$j][\"$tmpmin\"]=".$eleves[$i]["structures"][$j]["$tmpmin"]."
\n"; break; } } } } } $cpt++; } fclose($fp); $nb_err=0; // $cpt: Identifiant id_tempo $id_tempo=1; for($i=0;$i0){ for($j=0;$j\n"; $res_insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert){ echo "Erreur lors de la requête $sql
\n"; $nb_err++; } $id_tempo++; } } if($nb_err==0) { echo "

La première phase s'est passée sans erreur.

\n"; echo "\n"; } elseif($nb_err==1) { echo "

$nb_err erreur.

\n"; } else{ echo "

$nb_err erreurs

\n"; } $stat=$id_tempo-1-$nb_err; echo "

$stat associations identifiant élève/classe ont été inséré(s) dans la table 'temp_gep_import2'.

\n"; //echo "

Suite

\n"; echo "

Suite

\n"; require("../lib/footer.inc.php"); die(); } else{ echo "

ERREUR: Il n'a pas été possible d'ouvrir le fichier en lecture...

\n"; require("../lib/footer.inc.php"); die(); } } } break; case 1: echo "

Suite de l'analyse du XML

\n"; $dest_file="../temp/".$tempdir."/eleves.xml"; $fp=fopen($dest_file,"r"); if(!$fp){ echo "

Le XML élève n'a pas l'air présent dans le dossier temporaire.
Auriez-vous sauté une étape???

\n"; require("../lib/footer.inc.php"); die(); } else{ // On récupère les ele_id des élèves qui sont affectés dans une classe $sql="SELECT ele_id FROM temp_gep_import2 ORDER BY id_tempo"; $res_ele_id=mysqli_query($GLOBALS["mysqli"], $sql); affiche_debug("count(\$res_ele_id)=".count($res_ele_id)."
"); unset($tab_ele_id); $tab_ele_id=array(); $cpt=0; // Pourquoi est-ce que cela ne fonctionne pas en mysql_fetch_object()??? // TROUVé: C'EST SENSIBLE à LA CASSE: IL FAUDRAIT $lig->ELE_ID //while($lig=mysql_fetch_object($res_ele_id)){ while($lig=mysqli_fetch_array($res_ele_id)){ //$tab_ele_id[$cpt]="$lig->ele_id"; $tab_ele_id[$cpt]=$lig[0]; affiche_debug("\$tab_ele_id[$cpt]=$tab_ele_id[$cpt]
"); $cpt++; } /* echo "

Lecture du fichier Elèves...
\n"; //echo "

\n"; while(!feof($fp)){ $ligne[]=fgets($fp,4096); } fclose($fp); //echo "

Terminé.

\n"; */ echo "

"; echo "Analyse du fichier pour extraire les informations de la section ELEVES...
\n"; //echo "

\n"; $cpt=0; $eleves=array(); $temoin_eleves=0; $temoin_ele=0; $temoin_options=0; $temoin_scol=0; //Compteur élève: $i=-1; $tab_champs_eleve=array("ID_NATIONAL", "ELENOET", "NOM", "NOM_DE_FAMILLE", "NOM_USAGE", "PRENOM", "DATE_NAISS", "DOUBLEMENT", "DATE_SORTIE", "CODE_REGIME", "DATE_ENTREE", "CODE_MOTIF_SORTIE", "CODE_SEXE", ); $tab_champs_scol_an_dernier=array("CODE_STRUCTURE", "CODE_RNE", "SIGLE", "DENOM_PRINC", "DENOM_COMPL", "LIGNE1_ADRESSE", "LIGNE2_ADRESSE", "LIGNE3_ADRESSE", "LIGNE4_ADRESSE", "BOITE_POSTALE", "MEL", "TELEPHONE", "LL_COMMUNE_INSEE" ); // PARTIE //while($cpt".htmlspecialchars($ligne[$cpt])."
\n"; //if(strstr($ligne[$cpt],"")){ if(strstr($ligne,"")){ echo "Début de la section ELEVES à la ligne $cpt
\n"; flush(); $temoin_eleves++; } //if(strstr($ligne[$cpt],"
")){ if(strstr($ligne,"
")){ echo "Fin de la section ELEVES à la ligne $cpt
\n"; flush(); $temoin_eleves++; break; } if($temoin_eleves==1){ //if(strstr($ligne[$cpt],"".htmlspecialchars($ligne[$cpt])."
\n"; unset($tabtmp); //$tabtmp=explode('"',strstr($ligne[$cpt]," ELEVE_ID=")); $tabtmp=explode('"',strstr($ligne," ELEVE_ID=")); $eleves[$i]["eleve_id"]=trim($tabtmp[1]); affiche_debug("\$eleves[$i][\"eleve_id\"]=".$eleves[$i]["eleve_id"]."
\n"); unset($tabtmp); //$tabtmp=explode('"',strstr($ligne[$cpt]," ELENOET=")); $tabtmp=explode('"',strstr($ligne," ELENOET=")); $eleves[$i]["elenoet"]=trim($tabtmp[1]); //echo "\$eleves[$i][\"elenoet\"]=".$eleves[$i]["elenoet"]."
\n"; $temoin_ele=1; } //if(strstr($ligne[$cpt],"
")){ if(strstr($ligne,"")){ $temoin_ele=0; } if($temoin_ele==1){ //if(strstr($ligne[$cpt],"")){ if(strstr($ligne,"")){ $temoin_scol=1; } //if(strstr($ligne[$cpt],"")){ if(strstr($ligne,"")){ $temoin_scol=0; } if($temoin_scol==0){ for($loop=0;$loop")){ if(strstr($ligne,"<".$tab_champs_eleve[$loop].">")){ $tmpmin=mb_strtolower($tab_champs_eleve[$loop]); //$eleves[$i]["$tmpmin"]=extr_valeur($ligne[$cpt]); // Suppression des guillemets éventuels //$eleves[$i]["$tmpmin"]=extr_valeur($ligne); $eleves[$i]["$tmpmin"]=my_ereg_replace('"','',extr_valeur($ligne)); affiche_debug("\$eleves[$i][\"$tmpmin\"]=".$eleves[$i]["$tmpmin"]."
\n"); break; } } if(isset($eleves[$i]["date_naiss"])){ // A AMELIORER: // On passe plusieurs fois dans la boucle (autant de fois qu'il y a de lignes pour l'élève en cours après le repérage de la date...) //echo $eleves[$i]["date_naiss"]."
\n"; unset($naissance); $naissance=explode("/",$eleves[$i]["date_naiss"]); //$eleve_naissance_annee=$naissance[2]; //$eleve_naissance_mois=$naissance[1]; //$eleve_naissance_jour=$naissance[0]; if(isset($naissance[2])){ $eleve_naissance_annee=$naissance[2]; } else{ $eleve_naissance_annee=""; } if(isset($naissance[1])){ $eleve_naissance_mois=$naissance[1]; } else{ $eleve_naissance_mois=""; } if(isset($naissance[0])){ $eleve_naissance_jour=$naissance[0]; } else{ $eleve_naissance_jour=""; } $eleves[$i]["date_naiss"]=$eleve_naissance_annee.$eleve_naissance_mois.$eleve_naissance_jour; } } else{ //echo "$i - "; //$eleves[$i]["scolarite_an_dernier"]=array(); for($loop=0;$loop")){ if(strstr($ligne,"<".$tab_champs_scol_an_dernier[$loop].">")){ //echo "$i - "; $tmpmin=mb_strtolower($tab_champs_scol_an_dernier[$loop]); //$eleves[$i]["scolarite_an_dernier"]["$tmpmin"]=extr_valeur($ligne[$cpt]); // Suppression des guillemets éventuels //$eleves[$i]["scolarite_an_dernier"]["$tmpmin"]=extr_valeur($ligne); $eleves[$i]["scolarite_an_dernier"]["$tmpmin"]=my_ereg_replace('"','',extr_valeur($ligne)); affiche_debug( "\$eleves[$i][\"scolarite_an_dernier\"][\"$tmpmin\"]=".$eleves[$i]["scolarite_an_dernier"]["$tmpmin"]."
\n"); break; } } } /* if(strstr($ligne[$cpt],"")){ $eleves[$i]["id_national"]=extr_valeur($ligne[$cpt]); } if(strstr($ligne[$cpt],"")){ $eleves[$i]["elenoet"]=extr_valeur($ligne[$cpt]); } */ } } $cpt++; } fclose($fp); echo "

\n"; flush(); affiche_debug("count(\$eleves)=".count($eleves)."
\n"); affiche_debug("count(\$tab_ele_id)=".count($tab_ele_id)."
\n"); /* echo "
";
				print_r($eleves);
				echo "
"; */ //=========================== // A FAIRE: boireaus 20071115 // Insérer ici un tableau comme dans la partie ADRESSES pour simuler une barre de progression //=========================== $stat=0; $nb_err=0; for($i=0;$iSexe non défini dans Sconet pour ".maj_ini_prenom($tab_prenom[0])." ".mb_strtoupper($eleves[$i]['nom'])."
\n"; $sql.="elesexe='M', "; } $sql.="eledatnais='".$eleves[$i]['date_naiss']."', "; $sql.="eledoubl='".ouinon($eleves[$i]["doublement"])."', "; if(isset($eleves[$i]["scolarite_an_dernier"]["code_rne"])){$sql.="etocod_ep='".$eleves[$i]["scolarite_an_dernier"]["code_rne"]."', ";} if(isset($eleves[$i]["code_regime"])){$sql.="elereg='".$eleves[$i]["code_regime"]."', ";} $sql=mb_substr($sql,0,mb_strlen($sql)-2); $sql.=" WHERE ele_id='".$eleves[$i]['eleve_id']."';"; affiche_debug("$sql
\n"); $res_insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert){ echo "Erreur lors de la requête $sql
\n"; $nb_err++; flush(); } else{ $stat++; } } } if($nb_err==0) { echo "

La deuxième phase s'est passée sans erreur.

\n"; echo "\n"; } elseif($nb_err==1) { echo "

$nb_err erreur.

\n"; } else{ echo "

$nb_err erreurs

\n"; } } echo "

$stat enregistrement(s) ont été mis à jour dans la table 'temp_gep_import2'.

\n"; echo "

Suite

\n"; require("../lib/footer.inc.php"); die(); break; case 2: echo "

Recherche des correspondances ELENOET

\n"; // SUPPRIMER LE XML... if(file_exists("../temp/".$tempdir."/eleves.xml")) { echo "

Suppression de eleves.xml... "; if(unlink("../temp/".$tempdir."/eleves.xml")){ echo "réussie.

\n"; } else{ echo "Echec! Vérifiez les droits d'écriture sur le serveur.

\n"; } } if(isset($_POST['is_posted'])) { $ele_id=isset($_POST['ele_id']) ? $_POST['ele_id'] : NULL; $old_ele_id=isset($_POST['old_ele_id']) ? $_POST['old_ele_id'] : NULL; $elenoet=isset($_POST['elenoet']) ? $_POST['elenoet'] : NULL; $nb_ele_id=isset($_POST['nb_ele_id']) ? $_POST['nb_ele_id'] : 0; $cpt=0; if(isset($ele_id)) { //for($i=0;$i\n"); $nettoyage=mysqli_query($GLOBALS["mysqli"], $sql); if($elenoet[$i]!='') { if((isset($ele_id[$i]))&&($ele_id[$i]!='')) { //$sql="INSERT INTO tempo2 SET col1='$ele_id[$i]', col2='$elenoet[$i]';"; // Ou on fait les corrections dès maintenant. //$sql="UPDATE eleves SET ele_id='$ele_id[$i]' WHERE elenoet='$elenoet[$i]';"; $sql="UPDATE eleves SET ele_id='$ele_id[$i]' WHERE elenoet='$elenoet[$i]' OR elenoet='".sprintf("%05d",$elenoet[$i])."';"; affiche_debug("$sql
\n"); //echo "$sql
\n"; /* $fsql=fopen("/tmp/fich_debug.sql","a+"); fwrite($fsql,"$sql\n"); fclose($fsql); */ $correction1=mysqli_query($GLOBALS["mysqli"], $sql); if($old_ele_id[$i]!='') { $sql="UPDATE responsables2 SET ele_id='$ele_id[$i]' WHERE ele_id='$old_ele_id[$i]';"; affiche_debug("$sql
\n"); //echo "$sql
\n"; $correction2=mysqli_query($GLOBALS["mysqli"], $sql); } $cpt++; } } } echo "

$cpt correction(s) effectuée(s).

\n"; } } echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; //$sql="SELECT e.login,e.nom,e.prenom,e.naissance,e.sexe,e.elenoet, e.ele_id AS old_ele_id,t.ele_id FROM eleves e, temp_gep_import2 t WHERE e.elenoet=t.elenoet AND e.ele_id!=t.ele_id ORDER BY e.nom, e.prenom LIMIT 20;"; $sql="SELECT e.login,e.nom,e.prenom,e.naissance,e.sexe,e.elenoet, e.ele_id AS old_ele_id,t.ele_id FROM eleves e, temp_gep_import2 t WHERE LPAD(e.elenoet,5,'0')=LPAD(t.elenoet,5,'0') AND e.ele_id!=t.ele_id ORDER BY e.nom, e.prenom LIMIT 20;"; affiche_debug("$sql
\n"); if(!$res=mysqli_query($GLOBALS["mysqli"], $sql)) { echo "

Une erreur s'est produite sur la requête :
".$sql."
\n"; //Illegal mix of collations if(my_eregi("Illegal mix of collations",mysqli_error($GLOBALS["mysqli"]))) { //echo "".mysql_error()."\n"; echo "Il semble qu'il y ait un problème de 'collation' entre les champs 'eleves.ele_id' et 'temp_gep_import2.ele_id' :
\n"; echo "".mysqli_error($GLOBALS["mysqli"])."
\n"; echo "Il faudrait supprimer la table 'temp_gep_import2', renseigner la valeur de 'mysql_collate' dans la table 'setting' en mettant la même collation que pour votre champ 'eleves.ele_id'.
\n"; echo "Si par exemple, le champ 'eleves.ele_id' a pour collation 'latin1_general_ci', il faudrait exécuter une requête du type INSERT INTO setting SET name='mysql_collate', value='latin1_general_ci'; ou si la valeur existe déjà UPDATE setting SET value='latin1_general_ci' WHERE name='mysql_collate';
\n"; } echo "

\n"; } else { if(mysqli_num_rows($res)==0){ if(isset($_POST['is_posted'])) { echo "

Il n'y a plus d'ELENOET pour lequel effectuer une correction.

\n"; $sql="SELECT * FROM eleves WHERE ele_id LIKE 'e%' OR ele_id LIKE '';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)==0){ echo "

Terminé.

\n"; } else { echo "

Il reste un ou des élèves non rattachés à Sconet.
Tenter une reconnaissance sur les Nom, prénom et date de naissance.

\n"; } } else{ echo "

Aucun ELENOET trouvé pour effectuer une correction.

\n"; $sql="SELECT * FROM eleves WHERE ele_id LIKE 'e%' OR ele_id LIKE '';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)==0){ echo "

Terminé.

\n"; } else { echo "

Il reste un ou des élèves non rattachés à Sconet.
Tenter une reconnaissance sur les Nom, prénom et date de naissance.

\n"; } } } else{ echo "

Cocher les lignes pour lesquelles corriger l'ELE_ID dans la table 'eleves' (et éventuellement dans la table 'responsables2') d'après la proposition en dernière colonne.

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt=0; while($lig=mysqli_fetch_object($res)){ $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt++; } echo "
"; echo ""; echo "Tout cocher"; echo " / "; echo ""; echo "Tout décocher"; echo "LoginNomPrénomSexeNaissanceELENOETELE_ID
"; echo "\n"; echo "\n"; echo "\n"; echo "$lig->login$lig->nom$lig->prenom$lig->sexe$lig->naissance$lig->elenoet$lig->ele_id
\n"; echo "\n"; echo "\n"; } } echo "
\n"; if(isset($cpt)) { echo "\n"; } break; case 3: echo "

Recherche des correspondances NOM/PRENOM/NAISSANCE

\n"; if(isset($_POST['is_posted'])) { $ele_id=isset($_POST['ele_id']) ? $_POST['ele_id'] : NULL; $old_ele_id=isset($_POST['old_ele_id']) ? $_POST['old_ele_id'] : NULL; $elenoet=isset($_POST['elenoet']) ? $_POST['elenoet'] : NULL; $naissance=isset($_POST['naissance']) ? $_POST['naissance'] : NULL; $nb_ele_id=isset($_POST['nb_ele_id']) ? $_POST['nb_ele_id'] : 0; $cpt=0; if(isset($ele_id)) { //for($i=0;$i\n"); $nettoyage=mysqli_query($GLOBALS["mysqli"], $sql); if($elenoet[$i]!='') { if((isset($ele_id[$i]))&&($ele_id[$i]!='')) { //$sql="INSERT INTO tempo2 SET col1='$ele_id[$i]', col2='$elenoet[$i]';"; // Ou on fait les corrections dès maintenant. //$sql="UPDATE eleves SET ele_id='$ele_id[$i]' WHERE elenoet='$elenoet[$i]';"; $sql="UPDATE eleves SET ele_id='$ele_id[$i]', elenoet='$elenoet[$i]', naissance='$naissance[$i]' WHERE ele_id='$old_ele_id[$i]';"; affiche_debug("$sql
\n"); //echo "$sql
\n"; /* $fsql=fopen("/tmp/fich_debug.sql","a+"); fwrite($fsql,"$sql\n"); fclose($fsql); */ $correction1=mysqli_query($GLOBALS["mysqli"], $sql); if($old_ele_id[$i]!='') { $sql="UPDATE responsables2 SET ele_id='$ele_id[$i]' WHERE ele_id='$old_ele_id[$i]';"; affiche_debug("$sql
\n"); //echo "$sql
\n"; $correction2=mysqli_query($GLOBALS["mysqli"], $sql); } $cpt++; } } } echo "

$cpt correction(s) effectuée(s).

\n"; } } echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; $sql="SELECT e.login,e.nom,e.prenom,e.naissance,e.sexe, e.naissance, e.elenoet AS old_elenoet, e.ele_id AS old_ele_id, t.ele_id, t.elenoet, t.divcod, t.eledatnais FROM eleves e, temp_gep_import2 t WHERE e.ele_id LIKE 'e%' AND e.nom=t.elenom AND e.prenom=t.elepre ORDER BY e.nom, e.prenom LIMIT 20;"; affiche_debug("$sql
\n"); if(!$res=mysqli_query($GLOBALS["mysqli"], $sql)) { echo "

Une erreur s'est produite sur la requête :
".$sql."
\n"; //Illegal mix of collations if(my_eregi("Illegal mix of collations",mysqli_error($GLOBALS["mysqli"]))) { //echo "".mysql_error()."\n"; echo "Il semble qu'il y ait un problème de 'collation' sur les champs nom et prénom des tables 'eleves' et 'temp_gep_import2' :
\n"; echo "".mysqli_error($GLOBALS["mysqli"])."
\n"; echo "Il faudrait supprimer la table 'temp_gep_import2', renseigner la valeur de 'mysql_collate' dans la table 'setting' en mettant la même collation que pour votre champ 'eleves.ele_id'.
\n"; echo "Si par exemple, le champ 'eleves.ele_id' a pour collation 'latin1_general_ci', il faudrait exécuter une requête du type INSERT INTO setting SET name='mysql_collate', value='latin1_general_ci'; ou si la valeur existe déjà UPDATE setting SET value='latin1_general_ci' WHERE name='mysql_collate';
\n"; } echo "

\n"; } else { if(mysqli_num_rows($res)==0){ if(isset($_POST['is_posted'])) { echo "

Il n'y a plus de correspondance nom/prénom trouvée pour laquelle effectuer une correction.

\n"; echo "

Terminé.

\n"; } else{ echo "

Aucune correspondance nom/prénom trouvée pour effectuer une correction.

\n"; } } else{ echo "

Cocher les lignes pour lesquelles corriger l'ELE_ID, l'ELENOET et la date de naissance dans la table 'eleves' (et éventuellement dans la table 'responsables2') d'après la proposition en dernière colonne.

\n"; echo "\n"; echo ""; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; $cpt=0; while($lig=mysqli_fetch_object($res)){ $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt++; } echo "
Tout cocher / Tout décocher Table 'eleves'
(contenu actuel de la base)
Table 'temp_gep_import2'
(correspondant au fichier XML fourni)
LoginNomPrénomSexeNaissanceNaissanceELENOETELE_ID
"; echo "\n"; echo "\n"; $naissance=mb_substr($lig->eledatnais,0,4)."-".mb_substr($lig->eledatnais,4,2)."-".mb_substr($lig->eledatnais,6,2); echo "\n"; echo "\n"; echo "$lig->login$lig->nom$lig->prenom$lig->sexe$lig->naissance$naissance$lig->elenoet$lig->ele_id
\n"; echo "\n"; echo "\n"; } } echo "
\n"; if(isset($cpt)) { echo "\n"; } break; } } echo "


\n"; require("../lib/footer.inc.php"); ?>