begin process at 2012 02 15 09:22:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Problème import CSV Mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème import CSV Mysql

mardi 27 mai 2008 à 17:58:23 | Problème import CSV Mysql

shadowfox666

Bonjour,

Je dois réaliser un import de fichier de fichier CSV assez important (700 000 lignes)
Et je suis soumis à une contrainte assez ennuyeuse.
Le client veut que le séparateur dans le fichier soit "#!", seulement lors de l'utilisation de la fonction fgetcsv(), on ne peut mettre qu'un seul caractère en séparateur.

J'ai pensé utiliser "#" en séparateur et utiliser la fonction str_replace pour remplacer le "!" du "#!" par un autre caractère et éviter des changements de collones non prévus.

Cependant avec plus de 700 000 lignes à réger, je crains que le serveur explose en devant remplacer tant de caractères!
Quelqu'un aurait-il une alternative à me proposer? Une piste ? Quelque chose, un truc

Voici mon code pour l'instant : (il ne gère que la lecture du fichier, je m'occuperai du SQL une fois que je n'aurais plus ce problème de séparateur).

<?php
$row = 1;
$handle =fopen("test.csv", "r");

while (($data = fgetcsv($handle, 1000, "#")) !==FALSE) {
    $num = count($data);
    $row++;
   
    for ($c=0; $c < $num; $c++) {
    $data[$c] = str_replace("!", "AAA", $data[$c]);
       echo $data[$c] . "<br />\n";       
       
    }
}

fclose($handle);
?>

Merci pour vos réponse !

NIRVANA is never enough ! It' in the spirit !
mardi 27 mai 2008 à 18:45:53 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Réponse acceptée !
Salut,

pourquoi c'est obligé que ton séparateur sois # ?
tu peus peut être utiliser la fonction explode() :

explode("séparateur", "tableau");

a++

Si la réponse vous convient, pensez : Réponse accepté !

mardi 27 mai 2008 à 18:57:24 | Re : Problème import CSV Mysql

shadowfox666

Bonjour,

C'est à la demande du client comme, ces champs vont être écupérés à partir d'annonces déposées sur un site, il se peut très bien qu'un utilisateur mettent des ";" dans son annonce et ça sèmerai le désordre dans le tableau donc c'est pour cela qe l'on met des caractères eu utilisés comme le # même si à la base c'était #! qui avait été choisi.

Elle fonctionne comment cette fonction explode? Elle supporte les sépérateurs de plus de 1 caractère?

Merci pour vos réponses :)

NIRVANA is never enough ! It' in the spirit !
mardi 27 mai 2008 à 19:16:22 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Réponse acceptée !
Re,

la fonction explode supporte les sépparateur de plus d'un caractère !

www.php.net/explode

a++

Si la réponse vous convient, pensez : Réponse accepté !

mercredi 28 mai 2008 à 11:13:09 | Re : Problème import CSV Mysql

shadowfox666

Bonjour,

J'ai essayé la fonction explode mais pour l'instant je n'arrive pas à afficher ce que je souhaite.

<?php
$row =1;
$nb_ligne =0;
 $nb_champs =0;
 
 $fichier_csv = @fopen("niak2.csv", "r" );
 if($fichier_csv)
 {
  while (!feof($fichier_csv))
  {
 
   $curent_ligne =fgets($fichier_csv, 1000);
   $champs =explode("#!", $curent_ligne);
   $nb_ligne++;
  
   $num = count($champs);
   $row++;
   
        for ($c=0; $c < $num; $c++)
        {
   
               echo $champs[$c] . "<br />\n";       
       
        }
  
   }
}
?>

Lorsque je lance le script il m'affiche mes lignes avec !# alors qu'il devrait les considérer comme un séparateur.

Merci pour vos réponses

NIRVANA is never enough ! It' in the spirit !
mercredi 28 mai 2008 à 11:15:26 | Re : Problème import CSV Mysql

shadowfox666

Re,

Honte à moi je me suis trompé j'avais inversé les deux caractères pour le séparateur...
J'avais #! au lieu de !#.
Maintenant ça marche très bien!

Merci encore pour votre aide !

NIRVANA is never enough ! It' in the spirit !
mercredi 28 mai 2008 à 17:10:21 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Ok,

content pour toi !!

De rien !

a++

Si la réponse vous convient, pensez : Réponse accepté !



Cette discussion est classée dans : fichier, problème, data, csv, séparateur


Répondre à ce message

Sujets en rapport avec ce message

problème avec fichier CSV [ par xris ] Bonjour, Je sui perdu : j'utilise la fonction fgetcsv de la façon suivante : $row = 1; $handle = fopen("data.csv", "rb"); while (($data = fgetcsv($ Fichier texte [ par rochametallica ] Salut tout le monde, je voudrais avoir votre aide pour résoudre un problème, alors je voudrais un code en PHP qui me lis des valeurs d'un fichier text csv vers base de donnée [ par fraisa1985 ] Salut a tous, je veux faire une actualisation de ma base de donnée à partir d'une fichier csv. Ma probléme que le fichier csv contient des données pl Problème de header [ par mike1310 ] Bonjour à tous,je suis en train de me battre avec IE (pour ne pas changer) sur le téléchargement d'un fichier csv.J'explique le truc :J'ai un site qui Problème d'ajout de guillemets dans fichier csv avec la fonction fputcsv [ par TOULOUSELAUTREC69 ] Bonjour,Je génère un fichier csv sur mon site web qui contient la liste de mes clients du jour.Ensuite j'importe ce fichier dans mon logiciel de factu Requète LOAD DATA sql / CSV (importation,exportation) [ par onylink ] Bonjour, J'ai un problème pour utiliser la méthode LOAD DATA, qui prend en fichier type CSV et le découpe et rentre automatiquement dans la BDD (mySQL doublon dans un fichier csv [ par kikol ] Bonjour à vous, amis codeurs Désolé je ne sais aps si cette question est à al bonne place car c'est du mysql mais aussi de l'implémentation ^^. Je vie PHP avec interface R [ par belzebate ] Bonjour à tous et à toutes. Je suis étudiant en L3 MIAGE et je suis actuellement un stage pour valider mon année. Mon projet est de créer une platefo problème avec récupération $_POST [ par Parisssi ] bonjour voila ça 2 jours que je n'arrive pas à résoudre mon problème. J'ai le formulaire suivant et je n'arrive pas à récupérer le contenu de ma varia Problème export csv [ par senateur17 ] Bonjour , J'ai essayé en local export de fichier en csv(program php) ,ça a marché mais en ligne il affiche les données directement sur le navigateur m


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,404 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales