_importDataNotes.php_ 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. require_once "libs/fnMain.php";
  3. $_SETTINGS = require "libs/_settings.php";
  4. if (isset($_POST["csv"])) {
  5. // On parse le fichier CSV reçu
  6. $tempCsvByRow = explode("\n", $_POST["csv"]);
  7. array_shift($tempCsvByRow); // Enlève la 1ère ligne listant les colonnes
  8. $csvArray = [];
  9. foreach ($tempCsvByRow as $row) {
  10. $csvArray[] = str_getcsv($row, ",");
  11. }
  12. // On enregistre les data dans la BDD
  13. // MySQL avec autoImcrement
  14. $sql = "INSERT INTO notes_rang(annee, note, classement) VALUES (:annee, :note, :classement)";
  15. $reqInsertRangLimites = $db->prepare($sql);
  16. foreach ($csvArray as $item) {
  17. $reqInsertRangLimites->execute([
  18. "annee" => (int) $item[1],
  19. "note" => (float) $item[3],
  20. "classement" => (int) $item[2]
  21. ]);
  22. }
  23. // PgSQL sans autoIncrement
  24. /*
  25. $sql = "INSERT INTO notes_rang(id, annee, note, classement) VALUES (:id, :annee, :note, :classement)";
  26. $reqInsertRangLimites = $db->prepare($sql);
  27. $initialId = 14701;
  28. foreach ($csvArray as $item) {
  29. $initialId ++;
  30. $reqInsertRangLimites->execute([
  31. "id" => $initialId,
  32. "annee" => (int) $item[1],
  33. "note" => (float) $item[3],
  34. "classement" => (int) $item[2]
  35. ]);
  36. }
  37. */
  38. echo "Valeurs enregistrées";
  39. } else {
  40. // Affichage du formulaire d'import
  41. ?>
  42. <!doctype html>
  43. <html lang="fr">
  44. <head>
  45. <meta charset="UTF-8">
  46. <meta name="viewport"
  47. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  48. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  49. <title>IMPORT NOTES et RANGS</title>
  50. <link rel="stylesheet" href="assets/bootstrap.min.css">
  51. <link rel="stylesheet" href="assets/divers.css">
  52. </head>
  53. <body>
  54. <h1>RangLimier - Import des notes et rangs associés</h1>
  55. <p>Importation des données en CSV en DB.</p>
  56. <form action="_importDataNotes.php" method="post">
  57. <label for="csv">Ajouter le CSV ici (sous la forme "Session,Year,Rank,Total") </label> <br>
  58. <textarea name="csv"></textarea> <br>
  59. <button type="submit" class="btn btn-info">Envoyer</button>
  60. </form>
  61. </body>
  62. </html>
  63. <?php }