Page 1 sur 1

FGETCSV

Posté : 25 avr. 2012, 16:23
par Ben88
bonjour,

je créer en ce moment pour le besoin d'un projet des listes d’élevés que j'enregistre dans un fichier csv.
j'y référence le nom prénom etc...
j'utilise la fonction fputcsv pour écrire dans mon fichier.

Je souhaite maintenant retrouver les élèves.
la fonction fgetcsv devrait m'aider mais j'ai quelque problème.

J'ai trouvé ce code sur internet qui montre comment utiliser la fonction. et je souhaite la modifier.
<?php
//lecture intégrale d'un fichier
if(readfile("fichier.txt"))// si le fichier a été lu correctement, affichage du contenu sur le navigateur
{
echo "
nombre d'octect :".readfile("monfichier.txt"); //affichage du nombre d'octets
}
else // sinon
{
echo "aucun affichage";
}
fclose($fic) ;
?>

voila.
D'après ce que je vois la fonction enregistre dans $data un ligne du fichier et $data est en faite un simple tableau.
pourtant quand je souhaite faire un simple echo ($data[1]); par exemple. On me renvoi un erreur.

$data est-il bien un tableau ?

Merci d'avance pour toutes aides.

Re: FGETCSV

Posté : 25 avr. 2012, 16:28
par ben88
Pardon mauvaise citation :
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num champs à la ligne $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>

Re: FGETCSV

Posté : 25 avr. 2012, 16:31
par metiti
la fonction enregistre dans $data un ligne du fichier et $data.
Dans ton bout de code il n'y a rien de cela. Il retourne simplement le nombre d'octet s'il le peu, sinon il renvoi un message d'erreur.

Au passage, si tu veux faire un echo à un tableau, privilégie plus : print_r (pour le débogage), comme ceci:
echo "<pre>";
print_r(tontableau);
echo "</pre>";
Le code ci-dessus, affiche plus lisiblement un array.

Re: FGETCSV

Posté : 25 avr. 2012, 16:37
par metiti
ok c'est bien ce que je me disais :)
data est dans une boucle. Cette boucle commence à 0 et s'arrête lorsque $c atteins le nombre de $num.
data affiche donc toute les lignes du tableau qui sont compris entre 0 et le chiffre que renvoi $num.
Vérifie donc $num.

Re: FGETCSV

Posté : 25 avr. 2012, 16:59
par beN88
Problème résolut merci !!

Une simple erreur de ma par.