Bonjour à tous,
J'ai un CSV que j'arrive à lire et auquel je peux ajouter des lignes.
La forme du CSV :
UF,Libelle,Livraison
0159,IMPRIMERIE,LOGISTIQUE
0179,MAG SERV TECH,LOGISTIQUE
J'ajoute des lignes comme ceci :
Je voudrais ajouter une condition qui fasse que, si l'utilisateur souhaite ajouter une UF mais qu'elle existe déjà, le libellé et la livraison soient remplacés pour cet UF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php if(isset($_POST['ufAjout'])){ $ufAjout=$_POST['ufAjout']; } if(isset($_POST['libelleAjout'])){ $libelleAjout=$_POST['libelleAjout']; } if(isset($_POST['livraisonAjout'])){ $livraisonAjout=$_POST['livraisonAjout']; } $fichier = "monFichier.csv"; $fp = fopen($fichier, "a"); $line = array($ufAjout, $libelleAjout, $livraisonAjout); fputcsv($fp, $line); fclose($fp); echo "<div class='align'><p>Modifications effectuées avec succès</p></div>"; ?>
J'ai essayé avec une boucle for :
Mais avant même de tester je me suis rendu compte que c'était stupide vu qu'au final je me retrouve avec 310 nouvelles lignes dans mon CSV
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <?php if ($fichier<>false) { while (($data = fgetcsv($fp, 1000, ',')) !== FALSE){ $data = array_map('utf8_encode', $data); $uf[] = $data[0]; $libelle[] = $data[1]; $livraison[] = $data[2]; } } $count = file($fichier); $nb_lignes = count($count); for ($i=0; $i < $nb_lignes+1 ; $i++) { if($data[0][$i]==$ufAjout){ $line[$i] = array($ufAjout, $libelleAjout, $livraisonAjout); fputcsv($fp, $line[$i]); } else { $line = array($ufAjout, $libelleAjout, $livraisonAjout); fputcsv($fp, $line); } } ?>
Du coup je pensais partir sur un foreach mais je ne vois pas trop comment faire...
Vers quoi pensez-vous que je devrais m'orienter ?
Partager