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
Rejoignez-nous