1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| <?php
session_start();
include("../../../Scripts/connexion.php");
include("check_cloture.php"); //je déclare une fonction php afin qu'elle soit connue dans cette page (comme avec js); elle sert a voir si le cours n'est pas déja clôturé car il est possible de mofidier les cotes d'un cours clôturé via import d'excel dans le menu utilisateur !!!
require_once 'Excel/reader.php';
$compteur_ok = 0; //variable globale pour compter le nombre d'enregistrements qui ont été modifiés dans la base de données
$compteur_pas_ok = 0; //variable globale pour compter le nombre d'enregistrements qui n'ont pas été modifiés dans la base de données
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('UTF-8'); //DD: ici il faut mettre UTF-8 autrement affichage avec des symbôles
//recupere le nom du fichier indiqué par l'user
$fichier=$_FILES["userfile"]["name"];
$data->read($_FILES["userfile"]["tmp_name"]);
//error_reporting(E_ALL ^ E_NOTICE);
$donnee;
$LesDonnees = array ("1"=>"", "2"=>"", "3"=>"", "4"=>"", "5"=>""); //Tableau associatif ($LesDonnees), le nom des clés est 1,2,3,4 et 5 parce que dans les boucles for, le j va s'incrémenter de 1 a 5, je mets donc dans la valeur "1" du tableau "LesDonnees" la valeur de $data->sheets[0]['cells'][$i][$j] quand j vaut 1, dans la clé 2 du tableau "LesDonnees" la valeur de $data->sheets[0]['cells'][$i][$j] quand j vaut 2...
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) //linges
{
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) //colonnes
{
$donnee = $data->sheets[0]['cells'][$i][$j]." ";
$LesDonnees[$j] = $data->sheets[0]['cells'][$i][$j];
if(($j == 5) AND ($i != 1)) //$j == 5 car je dois updater la table QUE lorsque le champ est NOTE (5), donc des que l'on a la cote et l'ID ET $i différent de 1 car je ne dois pas tenir compte des entetes de colonnes qui correspondent a 1 dans (premier passage de la boucle for).
{
$ok = false;
if(is_numeric($LesDonnees['5']))
{
//je vérifie si la cote est supérieure a zéro et inférieure a 20 alors c'est ok
if(($LesDonnees['5'] >= 0) && ($LesDonnees['5'] <= 20)) $ok = true;
}
else
{
if(($LesDonnees['5'] == "ABS") || ($LesDonnees['5'] == "R") || ($LesDonnees['5'] == "D") || ($LesDonnees['5'] == "J"))
{
$ok = true;
//si c'est une chaine de caractere, j'ajoute les '' autrement, ça ne passe pas !!!
$LesDonnees['5'] = "'".$LesDonnees['5']."'";
}
}
if($ok)
{
//je sélectionne le nom, le type et la catégorie du cours
$cours_cloture = 'SELECT inscrits_en.MNEMONIC, inscrits_en.TYPE_DE_COURS, inscrits_en.CATEGORIE FROM inscrits_en WHERE inscrits_en.ID = '.$LesDonnees['1'];
//echo $cours_cloture;
$req_cours_cloture = mysql_query($cours_cloture);
while ($tab_req_cours_cloture = mysql_fetch_assoc($req_cours_cloture))
{
//je vérifie ici si le cours est clôturé, car autrement, on pourrait mettre a jour un cours via excel meme si il est clôturé !!!
if(check_cloture($tab_req_cours_cloture['MNEMONIC'],$tab_req_cours_cloture['TYPE_DE_COURS'],$tab_req_cours_cloture['CATEGORIE'] ) == 0)
{
$sql = 'UPDATE inscrits_en SET NOTE = ' .$LesDonnees['5'].' WHERE inscrits_en.ID = ' .$LesDonnees['1'];
//je mets directement a jour la base de données
$result = mysql_query($sql);
$ok = false;
$compteur_ok +=1;
// Vérification du résultat
// Ceci montre la requete envoyée a MySQL ainsi que l'erreur. Utile pour déboguer.
}
else
{
echo 'cours clôturé !';
exit();
}
}
}
else
{
$compteur_pas_ok+=1; //nombre d'enregistrement(s) qui n'ont pas été ajoutés dans la bd
}
if (!$result)
{
$message = 'Requete invalide : ' . mysql_error() . "\n";
die($message);
}
}
}
}
echo('Le document a été envoyé vers le serveur avec succes, la table a été mise a jour');?>
</br></br>
<?php
//echo($compteur_ok . "ont été ajoutés a la base de données");
echo 'Nombre d\'enregistrements modifiés dans la table : ' . $compteur_ok . '</br>';
echo 'Nombre d\'enregistrements non ajouté(s) : ' . $compteur_pas_ok;
//var_dump($t_donnees);
//print_r($data);
//print_r($data->formatRecords);
?> |
Partager