[RESOLU] Importer les dates d'un fichier CSV

Eléphanteau du PHP | 45 Messages

28 juin 2022, 22:48

Bonjour, lorsque j'importe le fichier CSV les dates contenues dans le fichier CSV ne sont pas mises dans les inputs.
Merci d'avance pour vos conseils et vos aides.

Voici le code en question :
<?php
  $host = "localhost";
	$login = "root";
	$mdp = "";
	$bdd = "remplacement";
	$con = mysqli_connect($host, $login, $mdp, $bdd);
    // ...
    if(isset($_POST["validFichier"])){
        $fileName = $_FILES["file"]["tmp_name"];

        if($_FILES["file"]["size"] > 0){
            $file = fopen($fileName, "r");
            fgetcsv($file);
            $i = 1;
            while(($column = fgetcsv($file, 10000, ","))!== FALSE){
                echo "<form action='' method='POST'>
                        <input type=\"time\" name=\"missions[$i]['hDebutMission']\"     value=$column[0]>
                        <input type=\"time\" name=\"missions[$i]['hFinMission']\"       value=$column[1]>
                        <input type=\"text\" name=\"missions[$i]['idDJ']\"              value=$column[2]>
                        <input type=\"text\" name=\"missions[$i]['mailUtPV']\"          value=$column[3]>
                        <input type=\"text\" name=\"missions[$i]['duree']\"             value=$column[4]>
                        <input type=\"date\" name=\"missions[$i]['dateDebutMission']\"  value=$column[5]>
                        <input type=\"date\" name=\"missions[$i]['dateFinMission']\"    value=$column[6]>
                        <input type=\"text\" name=\"missions[$i]['rneEcole']\"          value=$column[7]><br><br>";
            $i++;
            }
                echo "  <input type=\"submit\" name=\"validMissions\" value=\"Importer les missions\">
                     </form>";
        }
        
    }
    if(isset($_POST['validMissions'])){
        // display_var_dump($_POST);
        foreach($_POST['missions'] as $mission){
            // display_var_dump($mission);
            $sqlInsert = "INSERT into mission (hDebutMission, hFinMission, idDJ, mailUtPV, duree, dateDebutMission, dateFinMission, rneEcole)
                          values ('" .$mission["'hDebutMission'"]."','" .$mission["'hFinMission'"]."','" 
                                 .$mission["'idDJ'"]."','".$mission["'mailUtPV'"]."','" .$mission["'duree'"]."','" 
                                 .$mission["'dateDebutMission'"]."','" .$mission["'dateFinMission'"]."','" .$mission["'rneEcole'"]."')";
                          $result = mysqli_query($con, $sqlInsert);
                        //   echo $sqlInsert;
        }
    }
?>
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
</head>

<body>
    <form enctype="multipart/form-data" action="" method="post">
        <div class="input-row"></br>
            <label>Choisir un fichier CSV</label>
            <input type="file" name="file" id="file" accept=".csv">
            <input type="submit" name="validFichier"> Importer</button>
        </div>
    </form>
</body>
</html>

Mammouth du PHP | 2703 Messages

28 juin 2022, 22:55

quel est le code html généré (ctrl + u pour voir la source) par ce php ?

Eléphanteau du PHP | 45 Messages

28 juin 2022, 23:16

le code html généré par php est sur l'image que j'ai partagé :
https://drive.google.com/drive/folders/ ... sp=sharing

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

18 juil. 2022, 15:48

Peut être car le format de date dans le CSV n'est pas le bon ?

Affiche tes requêtes SQL et teste-les dans phpmyadmin
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 45 Messages

06 oct. 2022, 22:33

J'ai pu le résoudre et c'était bien un problème de format de date comme tu l'avais dit (je devais faire une fonction permettant de transformer la date format anglais en format français ou inversement )