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
|
// Debut de la transaction PDO
Factory::get( BDD_DRIVER ) -> beginTransaction() ;
// Preparation des requetes PDO
$preSelect = "SELECT note_valeur FROM etudiants_notes
WHERE note_etu_numero = :etu_numero
AND note_enseignement = '".$this -> idEns."'
AND note_epreuve = $epreuveId " ;
$preUpdate = "UPDATE etudiants_notes
SET note_valeur = :note
WHERE note_etu_numero = :etu_numero
AND note_enseignement = '".$this -> idEns."'
AND note_epreuve = '$epreuveId' " ;
$preInsert = "INSERT INTO etudiants_notes
( note_etu_numero , note_enseignement , note_epreuve , note_valeur )
VALUES
( :etu_numero , '".$this -> idEns."' , '$epreuveId' , :note ) " ;
$stmtSelect = Factory::get( BDD_DRIVER ) -> prepare( $preSelect ) ;
$stmtUpdate = Factory::get( BDD_DRIVER ) -> prepare( $preUpdate ) ;
$stmtInsert = Factory::get( BDD_DRIVER ) -> prepare( $preInsert ) ;
// Ouverture du fichier en lecture
ini_set( 'auto_detect_line_endings' , TRUE ) ;
$csvContent = fopen( 'imports/'.$destinationName, 'r' ) ;
// Traitement des donnees du fichier CSV
while ( ( $data = fgetcsv( $csvContent, 20, ";" ) ) !== FALSE )
{
$this -> statistiques['nbNote']++ ;
// Preparation des donnees
$numEtu = $data[0] ;
$noteEtu = $data[1] ;
$noteEtu = str_replace(',', '.', $noteEtu ) ;
// J'ai supprime les verifications sur le contenu
if ( $this -> error == NULL )
{
// Verification si la note est deja saisie
$stmtSelect -> bindParam( ':etu_numero', $numEtu );
$stmtSelect -> execute();
$etuData = $stmtSelect -> fetchAll( PDO::FETCH_ASSOC );
$etuOldNote = @$etuData[0]['note_valeur'] ;
$etuNb = $stmtSelect -> rowCount() ;
// Insertion de la note
if ( $etuNb < 1 )
{
$stmtInsert -> bindParam( ':etu_numero', $numEtu );
$stmtInsert -> bindParam( ':note', $noteEtu );
$stmtInsert -> execute() ;
}
// Mise a jour de la note
elseif ( $etuNb == 1 && $etuOldNote == '99.00' )
{
$stmtUpdate -> bindParam( ':etu_numero' , $numEtu ) ;
$stmtUpdate -> bindParam( ':note' , $noteEtu ) ;
$stmtUpdate -> execute();
}
Factory::get( BDD_DRIVER ) -> commit() ;
}
else
{
Factory::get( BDD_DRIVER ) -> rollBack();
}
}
} |
Partager