Mettre àjour ma BDD à partir d'un fichier csv [Résolu]

Messages postés
58
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
7 avril 2009
- - Dernière réponse : malalam
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
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.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
3
Merci
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);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_putch
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
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.
Commenter la réponse de malalam
Messages postés
58
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
7 avril 2009
0
Merci
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
Commenter la réponse de ldevun
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
11
0
Merci
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
Commenter la réponse de cs_jeca
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
0
Merci
"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);
Commenter la réponse de cs_putch
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Par défaut c'est la virgule, désolé. CSV = Comma Separated Values.
Comma = Virgule.
point-virgule = semicolon.
(en anglais).
Commenter la réponse de malalam