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 :

mettre chaque ligne d'un csv dans une cellule de tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 512
    Billets dans le blog
    1
    Par défaut mettre chaque ligne d'un csv dans une cellule de tableau
    Bonjour,

    voici un exemple tout bête de ce que je voudrais faire (comme indiqué dans le titre) :

    fichier csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1;2;3,4;5
    6;7;8,9;10
    donne l'array PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $linecsv=[1;2;3,4;5    6;7;8,9;10]

    Voici mon code :
    Code php : 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
     
                define('DIR_ROOT', dirname(__DIR__).DIRECTORY_SEPARATOR);
                $row = 1;
                $linecsv=array();
                if (($handle = fopen(DIR_ROOT.$upload_dir.DIRECTORY_SEPARATOR.$name, "r")) !== FALSE) {
                    while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
                        $num = count($data);
                        echo "<p> $num champs à la ligne $row: <br /></p>\n";
                        $linecsv[$row]=array();
                        for ($c=0; $c < $num; $c++) {
                            $linecsv[]=$data[$c];
                        }
     
                        var_dump($linecvs[$row]);break;
     
                    }$row++;
                    fclose($handle);

    et le message d'erreur :
    Notice: Undefined variable: linecvs in C:\wamp64\www\ticket\methodes\readcsvline.php on line 13
    Merci de me dire d'où ça vient.

  2. #2
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    Vérifie le nom de tes variables

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 512
    Billets dans le blog
    1
    Par défaut
    J'ai mis un temps fou à trouver mon erreur de nom !

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 512
    Billets dans le blog
    1
    Par défaut
    Il n'y avait pas que l'erreur de nom de variable, car je viens de constater que si la variable $data est bien remplie, par contre le tableau $linecsv est vide ...

    Rappel de mon code :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $row = 1;
                $linecsv=array();  
                if (($handle = fopen(DIR_ROOT.$upload_dir.DIRECTORY_SEPARATOR.$name, "r")) !== FALSE) {
                    while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
                        var_dump($data);
                        $num = count($data);
                        echo "<p> $num champs à la ligne $row: <br /></p>\n";
                        $linecsv[$row]=array();
                        for ($c=0; $c < $num; $c++) {
                            $linecsv[]=$data[$c];
                        } var_dump($linecsv[$row]);
                        $row++;
                    }
                    fclose($handle);
                }
    Que faut-il changer ?

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    je ne comprends pas trop où tu veux en venir mais bon pour transformer un .csv en tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = array_map('str_getcsv', file(DIR_ROOT.$upload_dir.DIRECTORY_SEPARATOR.$name));

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 512
    Billets dans le blog
    1
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Récupérer chaque ligne d'un pipeline dans une variable
    Par Eveanne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/06/2015, 16h16
  2. Réponses: 1
    Dernier message: 08/07/2013, 22h59
  3. mettre chaque chiffre d'un nombre dans une liste
    Par rom117 dans le forum Prolog
    Réponses: 4
    Dernier message: 13/12/2010, 23h39
  4. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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