J'ai un projet de PPE (Projet Pédagogique Encadré) à faire en groupe depuis 3 semaines, et il s'avère que mes collègues n'ont pas tous remplis leur mission, donc puisque le projet est à rendre pour la semaine prochaine et pour éviter d'avoir une mauvaise note, je voudrais me pencher dessus :
Le projet concerne la génération d'un seul fichier .csv après comparaison de deux autre fichiers (de même extension !). Plus précisément, cette comparaison a pour but de produire une gestion administrative scolaire : c'est à dire qu'un élève inscrit dans fichier1.csv, se nommant Jean Lagaffe, étant en terminale STMG, n'apparaîtra pas dans le fichier fichier2.csv (à la condition que celui-ci est eu son bac bien sûr !), et le comparaison doit justement vérifier que l'élève en question apparaisse ou non dans les deux tableaux. Autre exemple : Si admettons, l'élève Jean Lagaffe est en terminale STMG dans le fichier1.csv et apparaît de cette même façon dans le fichier fichier2.csv, alors cela signifie que celui-ci a redoublé.
Passons à mon problème : Après avoir rendu possible le téléchargement de fichiers .csv, via des boutons "Parcourir" (les fichiers étant à la racine du dossier), et la mise en place des données de ces fichiers dans deux tableaux différents ($tableau1 pour fichier1.csv et $tableau2 pour fichier2.csv), il ne me reste maintenant plus qu'à les comparer. Le problème est que lorsque je supprime une ligne dans un des fichiers .csv, cela n'a aucun impact, et la comparaison ne fonctionne pas bien.
Ainsi, notre fameux Jean Lagaffe, en Terminale STMG, dans le fichier1.csv, même s'il n'apparaît pas dans le fichier2.csv, le résultat qui en sort est toujours le même : L'élève Jean Lagaffe est étudiant dans l'établissement. L'élève Jean Lagaffe a redoublé.
Comme vous le voyez, ce n'est pas logique
Voici, ci-après mon code :
Code : Tout sélectionner
<!DOCTYPE>
<HTML>
<HEAD>
<meta charset="utf-8"/>
</HEAD>
<BODY>
<form method="POST" action="index.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier 1 : <input type="file" name="avatar">
Fichier 2 : <input type="file" name="avatar2">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
<?php
if(isset($_POST['envoyer'])){
if (is_uploaded_file($_FILES['avatar']['tmp_name']))
{
$filename = $_FILES['avatar']['tmp_name'] . "'.";
}
else {
echo "Nom du fichier : '". $_FILES['avatar']['tmp_name'] . "'.";
}
//Tableau 1
$tableau1 = array();
if(($handle = fopen($_FILES['avatar']['tmp_name'], "r")) !== FALSE){
$key = 0;
while(($data = fgetcsv($handle, 1000, ",")) !== FALSE){
$count = count($data);
for ($i0=0; $i0 < $count; $i0++){
$tableau1[$key][$i0] = $data[$i0];
}
$key++;
}
fclose($handle);
}
echo "<br/>";
print_r($tableau1);
echo "<br/>";
//Tableau 2
$tableau2 = array();
$filename2 = "Pronoteentier.csv";
if(($handle2 = fopen($_FILES['avatar2']['tmp_name'], "r")) !== FALSE){
$key2 = 0;
while(($data = fgetcsv($handle2, 1000, ",")) !== FALSE){
$count2 = count($data2);
for ($i1=0; $i1 < $count2; $i1++){
$tableau2[$key2][$i1] = $data[$i1];
}
$key2++;
}
fclose($handle2);
}
echo "<br/>";
print_r($tableau2);
echo "<br/>";
//Parcours des deux tableaux
for ($i=0; $i < count($tableau1); $i++) {
for ($i2=0; $i2 < count($tableau2); $i2++) {
//vérification de l'élève présent
if( $tableau1[$i][0] === $tableau2[$i2][0] && $tableau1[$i][1] === $tableau2[$i2][1]){
//si élèves présent initialisation de vérificateur a 1
$test = 1;
//vérification redoublement
if ($tableau1[$i][2] === $tableau2[$i2][2]) {
$test2 = 1;
}
}
}
//vérification du vérificateur pour l'èleve
if($test= 1){
echo "L'èleve ".$tableau1[$i][0]." ".$tableau1[$i][1]." est un étudiant dans l'établissement.</br>";
//vérification redoublement
if($test2 = 1){
echo "L'èleve ".$tableau1[$i][0]." ".$tableau1[$i][1]." a redoublé </br>";
}
}
else{
echo "L'èleve ".$tableau1[$i][0]." ".$tableau1[$i][1]." n'est plus présent </br>";
}
}
}
?>
</BODY>
</HTML>Dans l'attente d'une réponse, je vous remercie d'avance !
Lucie MUTEREL