Mettre àjour ma BDD à partir d'un fichier csv

Résolu
ldevun
Messages postés
58
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
7 avril 2009
- 24 août 2006 à 11:46
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
- 24 août 2006 à 18:06
Bonjour,
Je suis chez online.net et je souhaite mettre à jour ma BDD à partir d'un fichier csv. Comment puis-je faire?
Merci de vos réponses.

6 réponses

cs_putch
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
24 août 2006 à 12:31
salut

en cherchant un peut "lecture de fichier" t'aurai trouvé facilement mais bon voila :


$file =fopen('fichier.cvs', 'r');

$i = 0;
while(!feof($file))

{

  $buffer =fgets($file, 4096);

  $elements =explode(';',$buffer);

  $premier = $elements[0];

  $second = $elements[1];

    // ta requete de maj
   mysql_query("UPDATE table SET colonne='".$second ."' WHERE id='".$premier."'");


  $i++;

}
fclose($file);
3
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
24 août 2006 à 13:09
Hello,

ouais...enfin : file () est plus pratique dans ce cas-ci.
Ensuite, après le explode sur le séparateur (; ou ,), il faut faire attention aux délimitateurs éventuels (" ou ' ou rien). Puis inutile de réassigner chaque entrée du tableau obtenu avec explode () à des variables, autant utiliser les entrées directement.
0
ldevun
Messages postés
58
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
7 avril 2009

24 août 2006 à 14:30
Bonjour,
Pourrais-tu etre plus explicite malacam s'il te plait, c'est quoi les délimitateurs éventuels?? Tu aurais un exemple pour que je puisse comprendre facilement?
Merci beaucoup
0
cs_jeca
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
14
24 août 2006 à 14:32
Bonjour,

S'il s'agit d'une bdd mysql, le plus rapide est 'load data infile...'.
Le détail ici:
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html

Cordialement.

JC
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_putch
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
24 août 2006 à 17:44
"c'est quoi les délimitateurs éventuels"

par défaut un fichier csv utilise les ";" pour délimiter les champs ...

d'ou le :  $elements =explode(';',$buffer);
0
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
24 août 2006 à 18:06
Par défaut c'est la virgule, désolé. CSV = Comma Separated Values.
Comma = Virgule.
point-virgule = semicolon.
(en anglais).
0