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 :

affichage d'un csv en tableau [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut affichage d'un csv en tableau
    Bonjour à tous de la part d'un débutant en PHP.

    Je cherche, à l'aide de fgetcsv, à afficher dans un tableau seulement les 10 premières lignes et les 2 premières colonnes d'un csv qui en contient respectivement 167 et 12.
    Ou comment modifier le script suivant qui affiche l'ensemble du fichier ?
    Merci d'avance.

    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
    <?php  
    echo "<table>"; 
    $fichier = "monfichier.csv"; 
    $fic = fopen($fichier, 'rb'); 
    for ($ligne = fgetcsv($fic, 1024, ";"); !feof($fic); $ligne = fgetcsv($fic, 1024, ";")) { 
      echo "<tr>"; 
      $j = sizeof($ligne); 
      for ($i = 0; $i < $j; $i++) { 
        echo "<td>$ligne[$i]</td>"; 
        } 
      echo "</tr>"; 
      } 
    echo "</table>\n"; 
    ?>

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut
    Un truc comme ça doit afficher les 2 premières colonnes des 10 premières lignes :

    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
     
    <?php 
    echo "<table>"; 
    $fichier = "monfichier.csv"; 
    $fic = fopen($fichier, 'rb'); 
    $nb_lignes=0;		//Init du nombre de lignes
    $nb_lignes_max=10; 	//On parametre ici le nombre max de lignes a afficher
    $nb_colonnes_max=2;	//On parametre ici le nombre max de colonnes a afficher
    for ($ligne = fgetcsv($fic, 1024, ";"); !feof($fic); $ligne = fgetcsv($fic, 1024, ";")) { 
    	if($nb_lignes<$nb_lignes_max){
    		echo "<tr>"; 
    		$j = sizeof($ligne); 
    		if($j>$nb_colonnes_max){$j=$nb_colonnes_max;} // On limite à 2 colonnes
    		for ($i = 0; $i < $j; $i++) { 
    			echo "<td>".$ligne[$i]."</td>"; 
    		} 
    		echo "</tr>"; 
    	}
    	$nb_lignes++;
     
    } 
    echo "</table>\n"; 
    ?>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut selection des lignes d'un csv
    Merci beaucoup, Okiseb... C'est super !!!
    Et si, par exemple, je souhaite afficher seulement les colonnes 1, 3 et 7, et les lignes 2, 3, 9, 10, 11 et 12 ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut
    Alors peut-être cette solution fera l'affaire en gérant tes lignes et tes colonnes à afficher dans des tableaux :
    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
    25
     
    <?php 
    echo "<table>"; 
    $fichier = "monfichier.csv"; 
    $fic = fopen($fichier, 'rb'); 
    $nb_lignes=0;		//Init du nombre de lignes
    $tab_lignes=array(2,3,9,10,11,12); //Gestion des lignes dans un tableau
    $tab_colonnes=array(1,3,7); //Gestion des colonnes dans un tableau
     
    for ($ligne = fgetcsv($fic, 1024, ";"); !feof($fic); $ligne = fgetcsv($fic, 1024, ";")) { 
    	if(in_array($nb_lignes,$tab_lignes)){
    		echo "<tr>"; 
    		$j = sizeof($ligne); 
    		for ($i = 0; $i < $j; $i++) { 
    			if(in_array($i,$tab_colonnes)){
    				echo "<td>".$ligne[$i]."</td>"; 
    			}
    		} 
    		echo "</tr>"; 
    	}
    	$nb_lignes++;
     
    } 
    echo "</table>\n"; 
    ?>

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi faire des for partout ? un while suffis pour le premier, et pour parcourir un tableau c'est foreach

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Par défaut
    Effectivement, mais comme je suis parti de son code... je n'ai pas réfléchi sur détail
    D'ailleurs, si j'avais du lire un fichier CSV je ne serai même pas passé par cette fonction (fgetcsv)

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

Discussions similaires

  1. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 17h42
  2. Réponses: 3
    Dernier message: 11/01/2006, 18h44
  3. Réponses: 2
    Dernier message: 03/03/2005, 15h57
  4. Affichage graphique sous forme de tableau.
    Par eulone dans le forum C++
    Réponses: 2
    Dernier message: 24/11/2004, 21h34
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 12h28

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