_importDataChoix.php_ 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 traite les données
  13. // On récupère les datasets et on inverse les clés (pour chercher plus facilement)
  14. $specialityDatasetAbrev = array_flip(getCsvToArrayKeyValue($_SETTINGS["datasetFolder"]."/liste_specialites_abrev.csv"));
  15. $cityDatasetAbrev = array_flip(getCsvToArrayKeyValue($_SETTINGS["datasetFolder"]."/liste_villes_abrev.csv"));
  16. $csvConvertedItems = [];
  17. foreach ($csvArray as $csvItem) {
  18. if ($csvItem[3] === "ESSA" || $csvItem[3] === "Invalidé") {continue;}
  19. $csvConvertedItems[] = [
  20. "annee" => $csvItem[0],
  21. "classement" => $csvItem[1],
  22. "idChoix" => "0".$cityDatasetAbrev[$csvItem[3]].$specialityDatasetAbrev[$csvItem[2]]
  23. ];
  24. }
  25. // var_dump($csvConvertedItems); die();
  26. // On enregistre les data dans la BDD
  27. $sql = "INSERT INTO anciens_choix(annee, classement, idchoix) VALUES (:annee, :classement, :idChoix);";
  28. $reqInsertRangLimites = $db->prepare($sql);
  29. foreach ($csvConvertedItems as $item) {
  30. /* var_dump([
  31. "annee" => (int) $item["annee"],
  32. "classement" => (int) $item["classement"],
  33. "idChoix" => $item["idChoix"]
  34. ]); die(); */
  35. $reqInsertRangLimites->execute([
  36. "annee" => (int) $item["annee"],
  37. "classement" => (int) $item["classement"],
  38. "idChoix" => $item["idChoix"]
  39. ]);
  40. }
  41. echo "Valeurs enregistrées";
  42. } else {
  43. // Affichage du formulaire d'import
  44. ?>
  45. <!doctype html>
  46. <html lang="fr">
  47. <head>
  48. <meta charset="UTF-8">
  49. <meta name="viewport"
  50. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  51. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  52. <title>IMPORT CHOIX et RANGS</title>
  53. <link rel="stylesheet" href="assets/bootstrap.min.css">
  54. <link rel="stylesheet" href="assets/divers.css">
  55. </head>
  56. <body>
  57. <h1>RangLimier - Import des choix, année et rangs associés</h1>
  58. <p>Importation des données en CSV en DB.</p>
  59. <form action="_importDataChoix.php" method="post">
  60. <label for="csv">Ajouter le CSV ici (sous la forme "Annee,Rang,Spe,CHU") avec la ligne titre </label> <br>
  61. <textarea name="csv"></textarea> <br>
  62. <button type="submit" class="btn btn-info">Envoyer</button>
  63. </form>
  64. </body>
  65. </html>
  66. <?php }