IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier ligne d'un CSV


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 28
    Points : 24
    Points
    24
    Par défaut Modifier ligne d'un CSV
    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 :
    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>";
    ?>
    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.

    J'ai essayé avec une boucle for :
    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); 	
           }
    }
    ?>
    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

    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 ?

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 912
    Points : 6 705
    Points
    6 705
    Par défaut
    Vers quoi pensez-vous que je devrais m'orienter ?
    Une base de données.

    Faire des ajouts/supressions/tests d'id avec un fichier csv, c'est lent, c'est la chianlie, c'est l'antre du royaume de Belzébuth.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En intermédiaire entre SGDB et fichier CSV, tu peux regarder du côté de SQLite.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Si seulement je pouvais passer par une bdd
    Malheureusement ce n'est pas moi qui décide à ce niveau là

Discussions similaires

  1. Modifier lignes d'une table via un formulaire
    Par Hombe dans le forum IHM
    Réponses: 2
    Dernier message: 11/03/2009, 20h23
  2. [CSV] Saut de ligne dans un csv
    Par ThE BiShOp* dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2007, 15h21
  3. Modifier ligne + ligne suivante - VB.net + sql2005
    Par eric8787 dans le forum VB.NET
    Réponses: 8
    Dernier message: 05/12/2007, 17h13
  4. Modifier ligne d'un fichier
    Par Jahjouh dans le forum C++
    Réponses: 9
    Dernier message: 22/02/2007, 11h21
  5. [VB6]Modifier ligne d'un fichier .TXT
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/07/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo