FGETCSV

Ben88
Invité n'ayant pas de compte PHPfrance

25 avr. 2012, 16:23

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.

ben88
Invité n'ayant pas de compte PHPfrance

25 avr. 2012, 16:28

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);
}
?>

Eléphanteau du PHP | 13 Messages

25 avr. 2012, 16:31

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.

Eléphanteau du PHP | 13 Messages

25 avr. 2012, 16:37

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.

beN88
Invité n'ayant pas de compte PHPfrance

25 avr. 2012, 16:59

Problème résolut merci !!

Une simple erreur de ma par.