[php] récup donnée

Fermé
Moi - 24 mai 2005 à 17:08
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 25 mai 2005 à 15:25
Bonjour tous le monde les gens,

j'ai ceci :

<?
$fichier = "test.csv";
$fic = fopen($fichier, 'rb');

echo "<table border='1'>\n";
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";

?>


cela me permet de ranger des infos dans un tableau.
Par contre ma derniere ligne ne s'affiche pas ??

Je voudrais également rajouter un "split" qui me permet de classer chaque données dans une colonne : dans le ficier csv, la 1ere colonne indique des noms, la 2eme prenom etc...

Merci
A voir également:

4 réponses

Bonjour,

personne ne peut m'aider.
Je pense pas que ce soit tres difficile, mais je n'y arrive pas.

Merci de votre aide.
0
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
25 mai 2005 à 10:05
C'est vrai que c'est bizarre... Je pense que quand tu fais le dernier fgetcsv($fic, 1024) tu atteins ta condition d'arrêt avant de l'écrire. Essaie :

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


Je te garantis pas que ça marche mais au moins on verra pourquoi ça plante si ça plante.


Je voudrais également rajouter un "split" qui me permet de classer chaque données dans une colonne : dans le ficier csv, la 1ere colonne indique des noms, la 2eme prenom etc...


Pas compis
0
OUI merci beaucoup mamiemando !!!

ca marche impécable!

donc maintenant j'ai récupérer tout le fichier et je les mis dans mon tableau. Ce que je veux, c'est par exemple afficher juste la 1ere colonne qui corespond par exemple au nom.

exemple : Durand Paul
Durant Francois
Du rang Eric
avec la fonction ca me donne juste : Durand
Durant
Du rang
Ca doit se faire avec "split" je pense

Merci de votre aide..
0
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 7 801
25 mai 2005 à 15:25
Je viens de comprendre ^^ En effet c'est exactement ça, avec un split ;o). Donc tu splite sur les tabulations et tu ne conserve que le champ qui t'interesse.

Exemple tiré de
http://www.php.net/split
<?php
// Les délimiteurs peuvent être des tirets, points ou slash
$date = "04/30/1973"; 
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?> 

Toi, il faut à priori que tu splites sur les \t et ' '.

Ou mieux tu utilises preg_split
http://www.php.net/manual/fr/function.preg-split.php
<?php
// scinde la phrase grâce aux espacements
// ce qui inclus les " ", \r, \t, \n et \f
$keywords = preg_split("/[\s]+/", "la chaine");
?>
0