[RESOLU] Contenu d'un fichier CSV qui disparait

Eléphanteau du PHP | 14 Messages

10 juin 2015, 10:14

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

10 juin 2015, 10:23

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 ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 14 Messages

10 juin 2015, 10:28

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