Lecture et écriture fichier csv à partir d'un formulaire

eiffel74 Messages postés 9 Statut Membre -  
djflexlive Messages postés 577 Statut Membre -
Bonjour,

J'ai un formulaire qui lit un csv et qui affiche les données dans des input.

<?php
$fp = fopen('ventes.csv','r+') or die("can't open file");?>
<form action="store.php" method="post">
<?php
while($csv_line = fgetcsv($fp,1024)) {
    for ($i = 0, $j = count($csv_line); $i < $j; $i++) {
        print '<input name="txt_form" type="text" value="'.$csv_line[$i].'" style="width:300px"/><br>';
    }
}
print '<input name="Soumettre" type="submit" />
</form></form>';
$myArray =array (utf8_decode($_POST['txt_form']));
fputcsv($fp, $myArray, ";");
fclose($fp) or die("can't close file");
?>


J'aimerais, dans un premier temps, que chaque champs (séparés par un ;) sooit affiché dans un input séparé. Dans un deuxième temps, j'aimerais pouvoir modifier un input et sauver l'intégralité du formulaire dans le même fichier csv.

Actuellement mon code de sauvegarde n'enregistre rien.

<?php
$fn = $_POST['txt_form'];
$cvsData = $fn;
$fp = fopen("ventes.csv","a");
if($fp){
fwrite($fp,$cvsData); 
fclose($fp); 
}
?>


Pouvez-vous m'aider?

Merci
A voir également:

1 réponse

djflexlive Messages postés 577 Statut Membre 95
 
Quand tu lis ton fichier csv, changes le nom des input (name) dynamiquement car là ; tu n'as qu'un champs identique pour toutes tes valeurs.

Ensuite lors de l'enregistrement, fais un foreach de ton $_POST afin de construire les données à écrire dans le csv.
0