Bonjour,
Je reviens vers vous avec mon problème d'import de fichier csv dans ma base de données.
le script fonctionne très bien lorsque je met le nom du fichier en dur dans la variable $filename, mais je voudrai pouvoir sélectionner mon fichier avec un formulaire et lorsque je clique sur le bouton "submit" faire le traitement d'import, j'ai essayer tout type de formulaire mais je n'y arrive pas je ne comprends pas ou je fait l'erreur.
merci d'avance de votre aide.
Gilles.
<?php
include './lib/includes.php';
// définition des variables
//$filename = './immat.csv';
if(isset($_POST'import'])){
$filename = $db->quote($_POST'import']);
// fonction lecture du fichier
function read_csv($filename)
{
// ouverture du fichier
$FILE=fopen($filename,"r");
// lire ligne par ligne et couper colonne par colonne
while ($ARRAY]=fgetcsv($FILE,1024,";"));
// fermer le fichier
fclose($FILE) ;
// effacer la dernière ligne
array_pop($ARRAY);
// renvoi le tableau
return $ARRAY ;
}
$data = read_csv($filename);
foreach ( array_slice( $data, 1 ) as $i => $line ) {
$select = $db->query("SELECT COUNT(*) AS verif_chassis FROM vehicules WHERE chassis='". $line[1] ."'");
if( $select->fetch()->verif_chassis < 1 ){
$import = $db->query("INSERT INTO vehicules (id, immat, chassis) VALUES ('','". $line[0] ."', '". $line[1] ."')");
}else{
$import = $db->query("UPDATE vehicules SET immat='$line[0]' WHERE chassis='". $line[1] ."'");
}
}
}
?>
<form action="#" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="import">Fichier à traiter</label>
<input type='file' class='form-control' name='import'>
</div>
<button type="submit" class="btn btn-primary">Traitement Fichier</button>
</form>