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 :

[CSV] Ne lire que la premiere ligne d'un fichier CSV


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de passie
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 55
    Points
    55
    Par défaut [CSV] Ne lire que la premiere ligne d'un fichier CSV
    Bonjour à tous,
    Tout est dans le titre, je cherche à ne lire que la première ligne d'un fichier CSV
    Pour le moment, je fait cela
    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
     
    //CHERCHE LES NOMS DE LYS CONTENU DANS LA PREMIERE LIGNE DU FICHIER, TROUVE LES ID_LYS CORRESPONDANTS
    $row = 1;
    $handle = fopen($nom_fichier, "r");
     
    while (($data = fgetcsv($handle, 1024, ";")) !== FALSE) {
    	$num = count($data);
    		if ($row ==1) {
    			for ($a=2;$a < $num;$a++) {
    				$tab_nom_lys[]=$data[$a];
    			}
    			foreach ($tab_nom_lys as $value)
    			{
    				$id_lys = pg_query($db,"SELECT id_lys FROM f.t_lys WHERE nom_lys = '".$value."';");
    				$tab_id_lys[]=pg_fetch_result($id_lys,0,0);
    			}
    		}
    		$row++;
    }
    fclose($handle);
    ?>
    et je récupére bien ce que je souhaite mais mon script lit tout de même toutes les lignes du fichier.
    Que faut il faire pour ne lire que la première ??
    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Sans trop réflechir je dirais remplacer le "while" par un "if".
    Si c'est pas ça shame on me

  3. #3
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Je pense que le while par un if cela doit etre bon.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    regarde les options de fopen, normalement avec "r" tu place le pointeur sur la premiere ligne et tu n'a plus qu'a la recupere avce un fgets
    voila

  5. #5
    Membre du Club Avatar de passie
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 55
    Points
    55
    Par défaut
    regarde les options de fopen, normalement avec "r" tu place le pointeur sur la premiere ligne et tu n'a plus qu'a la recupere avce un fgets
    voila
    Ok j'étais parti sur les options de fgetcsv alors qu'il suffit de ne pas déplacer le pointeur
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $handle = fopen($nom_fichier, "r");
    $data = fgetcsv($handle, 1024, ";");
    $num = count($data);
    for ($a=2;$a < $num;$a++) {
    	$tab_nom_lys[]=$data[$a];
    }
    foreach ($tab_nom_lys as $value)
    {
    	$id_lys = pg_query($db,"SELECT id_lys FROM fagn.t_lysimetre WHERE nom_lys = '".$value."';");
    	$tab_id_lys[]=pg_fetch_result($id_lys,0,0);
    }
    fclose($handle);

  6. #6
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    heu, le if fgetcsv n'est pas superflu.

  7. #7
    Membre du Club Avatar de passie
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 55
    Points
    55
    Par défaut
    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
    $handle = fopen($nom_fichier, "r");
    if (($data = fgetcsv($handle, 1024, ";")) !== FALSE) {
    $num = count($data);
    for ($a=2;$a < $num;$a++) {
    	$tab_nom_lys[]=$data[$a];
    }
    foreach ($tab_nom_lys as $value)
    {
    	$id_lys = pg_query($db,"SELECT id_lys FROM fagn.t_lysimetre WHERE nom_lys = '".$value."';");
    	$tab_id_lys[]=pg_fetch_result($id_lys,0,0);
    }
    }
    fclose($handle);

  8. #8
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Oui c mieux.

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

Discussions similaires

  1. Supprimer premiere ligne d'un fichier CSV
    Par leame dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2015, 12h55
  2. LineNumberReader ne lit que la premiere ligne de mon fichier
    Par Alcooline dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 11/08/2011, 10h30
  3. Lire seulement la premiere ligne d' un fichier
    Par afifaNancy dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/03/2011, 18h59
  4. Réponses: 11
    Dernier message: 24/05/2007, 17h05
  5. lire premiere ligne d un fichier
    Par lathiolle dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2006, 15h33

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