Page 1 sur 1

Contenu d'un fichier CSV qui disparait

Posté : 10 juin 2015, 10:14
par Ghirahim
Bonjour bonsoir,

Je dois comparer deux fichiers A.csv et B.csv composés de login, nom et notes.
Les logins et les noms sont identiques dans les deux fichiers.
Je dois écraser les valeurs des notes en ne prenant que la meilleure

Par exemple si :
Note A = 11/20 et Note B = 18/20
alors le fichier A est écrasé et prendra la note de 18/20

A l'inverse
Note A = 19/20 et Note B = 12/20
Le fichier A garde la note de 19/20

Cependant quand je run mon script le contenu A est TOTALEMENT supprimé
Je crains que ce soit à cause d'une ouverture en écriture mais je ne suis pas sur

Pouvez vous m'aider ? Merci par avance

Code : Tout sélectionner

$openB = fopen("bis.csv", "r"); while (($data = fgetcsv($openB, 1000, ";")) !== FALSE) { $notesA[$data[0]] = $data; } fclose($openB); $openA = fopen("toast.csv", "r"); while (($data = fgetcsv($openA, 1000, ";")) !== FALSE) { $line[0] = $data[0]; $line[1] = $data[1]; for ($i = 2; $i < 5; $i++) { $line[$i] = max($data[$i], $notesA[$data[0]][$i]); } $output[] = $line; } fclose($openA); $openA = fopen("toast.csv", "w"); foreach ($output as $line) { fputcsv($openB, $line, ";"); } fclose($openA);

Re: Contenu d'un fichier CSV qui disparait

Posté : 10 juin 2015, 10:23
par @rthur
Bonjour,
$openA = fopen("toast.csv", "w");

foreach ($output as $line)
{
    fputcsv($openB, $line, ";");
}
fclose($openA);
Tu ouvres A en écriture mais tu demande d'écrire dans B, c'est normal ?

Re: Contenu d'un fichier CSV qui disparait

Posté : 10 juin 2015, 10:28
par Ghirahim
Ha oui merci c'est une erreur de ma part ._.

C'est bien le fichier A qui doit être modifié et pas le B.

J'ai fputcsv ($openA) et ca marche très bien :D

Quel oeil de lynx !! Un grand merci je bloquais depuis deux jours XD